java 集合底层机制

2023-05-19  本文已影响0人  robertzhai

集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。

ArrayList(数组)

Vector(数组实现、线程同步)

LinkList(链表)

HashSet(Hash 表)

TreeSet(二叉树)

image.png

HashMap(数组+链表+红黑树)

ConcurrentHashMap

image.png
image.png
image.png

HashTable(线程安全)

LinkedHashSet (记录插入顺序 hash表和双向链表)

1.在LinkedHastSet中维护了一个hash表和双向链表(LinkedHashSet有head 和tail )
2. 每一个节点有pre和next属性,这样可以形成双向链表
3. 在添加一个元素时,先求hash值,在求索引.确定该元素在hashtable的位置,然后将添加的元素加入到双向链表(如果已经存在,不添加[原则和hashset一样])
tail.next = newElement //简单指定
newElement.pre = tail
tail = newEelment;
4. 这样的话,我们遍历LinkedHashSet 也能确保插入顺序和遍历顺序一致
image.png

LinkHashSet(HashSet+LinkedHashMap)

image.png
image.png
上一篇 下一篇

猜你喜欢

热点阅读