【java】集合相关
·

List
1. 数组






2. ArrayList



即第一次add操作时会触发扩容操作,第一次扩容为default_capacity=10。




- 数组转list,受影响

- list转数组,不受影响


3. LinkList






LinkList采用双向链表实现。
4. ArrayList vs LinkList



HashMap
1. 二叉树



正常情况下时间复杂度O(logn),极端情况下O(n)

叶子节点都在最后两层。在添加或删除节点的时候,如果不符合这些性质会发生旋转,以达到所有的性质。

2. 散列表




插入:O(1)
查找/删除:平均情况是O(1),当大量哈希冲突时需要遍历链表,时间复杂度O(n);或者将链表替换成红黑树,时间复杂度O(logn)。
红黑树还有一个好处:
HashMap就是散列表实现,红黑树。
3. HashMap









扩容机制:


寻址算法:




更多推荐
所有评论(0)