Java LinkedHashSet

156 阅读1分钟

LinkedHashSet

  • 有序、不重复、无索引
  • 这里的有序指的是保证存储和去除元素顺序一致
  • 原理:底层数据结构依然是哈希表,只是每个元素又额外的多了一个双链表的机制记录存储的顺序

Snipaste_2022-11-06_18-30-21.png

  • 如果要进行数据去重,还是默认使用HashSet
  • 如果要求去重且存取有序,才使用LinkedHashSet

源码

//构造  调用父类的构造函数
public LinkedHashSet() {
    super(16, .75f, true);
}

//父类构造函数
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
    map = new LinkHashmap<>(initialCapacity, loadFactor);
}