LinkedHashSet(基于JDK1.8)
LinkedHashSet
依赖关系
1 | public class LinkedHashSet<E> |
类注释说明
- LinkedHashSet 继承了HashSet 但是 底层增加了 双向链表 所以 LinkedHashSet 是有序 并且 不重复的
- 允许元素为null 基本操作 add contains remove 与 HashSet一样 如果哈希函数将元素散列到桶中 性能可能略低于 HashSet 因为增加了维护链表的开销 但是 有一个例外 在LinkedHashSet 上的迭代时间 与 集合大小成正比 不管其容量如何 而 HashSet 上的迭代 可能更长 需要的时间和 HashSet的容量 成正比
- 影响性能的两个参数 初始容量 负载因子 对于LinkedHashSet 来说 初始容量选择过高值的后果要小于HashSet 因为 LinkedHashSet 迭代时间不受 容量 的影响
- LinkedHashSet 线程不安全的 需要外部同步 或者使用 Collections#synchronizedSet 例子:Set s = Collections.synchronizedSet(new LinkedHashSet(…));
- since:1.4
构造器
1 | // 入参 初始容量 加载因子 |