java hashset 时间复杂度_Java 集合时间复杂度

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的有序性

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值