在这里插入图片描述

List

1. 数组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. ArrayList

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
即第一次add操作时会触发扩容操作,第一次扩容为default_capacity=10。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 数组转list,受影响

在这里插入图片描述

  1. 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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
扩容机制:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
寻址算法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐