前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 集合时间复杂度

Java 集合时间复杂度

作者头像
allsmallpig
发布2022-01-06 15:15:35
5130
发布2022-01-06 15:15:35
举报
文章被收录于专栏:allsmallpi博客allsmallpi博客

List

ArrayList

get() 直接读取下标,复杂度 O(1) add(E) 直接在队尾添加,复杂度 O(1) add(index, E) 在第n个元素后插入,n后面的元素需要向后移动,复杂度 O(n) remove() 删除元素后面的元素需要逐个前移,复杂度 O(n)

LinkedList

addFirst() 添加队列头部,复杂度 O(1) removeFirst() 删除队列头部,复杂度 O(1) addLast() 添加队列尾部,复杂度 O(1) removeLast() 删除队列尾部,复杂度 O(1) getFirst() 获取队列头部,复杂度 O(1) getLast() 获取队列尾部,复杂度 O(1) get() 获取第n个元素,依次遍历,复杂度O(n) add(E) 添加到队列尾部,复杂度O(1) add(index, E) 添加到第n个元素后,需要先查找到第n个元素,复杂度O(n) remove() 删除元素,修改前后元素节点指针,复杂度O(1)

Set

HashSet

add() 复杂度为 O(1) remove() 复杂度为 O(1) contains() 复杂度为 O(1)

TreeSet(基于红黑树)

add() 复杂度为 O(log (n)) remove() 复杂度为 O(log (n)) contains() 复杂度为 O(log (n))

map

TreeMap(基于红黑树)

平均时间复杂度 O(log n)

HashMap

正常时间复杂度 O(1)~O(n) 红黑树后 O(log n)

LinkedHashMap

能以时间复杂度 O(1) 查找元素,又能够保证key的有序性

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档