LinkedHashSet
- 有序、不重复、无索引
- 这里的有序指的是保证存储和去除元素顺序一致
- 原理:底层数据结构依然是哈希表,只是每个元素又额外的多了一个双链表的机制记录存储的顺序
- 如果要进行数据去重,还是默认使用HashSet
- 如果要求去重且存取有序,才使用LinkedHashSet
源码
//构造 调用父类的构造函数
public LinkedHashSet() {
super(16, .75f, true);
}
//父类构造函数
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
map = new LinkHashmap<>(initialCapacity, loadFactor);
}