LinkedHashSet介绍
-
LinkedHashSet是HashSet说明
-
LinkedHashSet是HashSet的子类
-
LinkedHashSet底层是一个LinkedHashMap,底层维护了一个 数组 + 双向链表
-
LinkedHashSet根据元素的hashcode值来决定元素的存储位置,同时使用链表维护元素的次序,使得元素看起来十一插入顺序保存到
-
LinkedHashSet不能许添加重复元素
-
-
LinkedHashSet 底层机制
-
在 LinkedHashSe t中维护了一个 hash 表和双向链表(LinkedHashSet 有 head 和 tail)
-
每一个节点有 pro 和 next 属性,这样可以i形成双向链表
-
在添加一个元素时,先求 hash 值,在求索引,确定该元素在hashtable的位置,燃火将添加的元素加入到双向链表(如果已经存在,不添加[原则和 hashset 一样])
tail.next = newElement newElement.pre = tail tail = newElement
-
这样的话,我们遍历 LinkedHashSet 也能确保插入顺序和遍历顺序一致
-