Set接口实现类的LinkedHashSet

基本说明

  1. LinkedHashSet是HashSet的子类
  2. LinkedHashSet底层是一个LinkedHashMap,底层维护了一个数组(table)+双向链表
  3. LinkedHashSet根据元素的hashCode值来决定元素的存储位置,同时使用链表维护次序,这使得元素看起来是以顺序保存的。
  4. LinkedHashSet不许添加重复元素
  5. 第一次添加元素数组(table)扩容到16;存放的节点数据类型是LinkedHashMap$Entry
  6. 数组是HashMap$Node[] 存放的元素(数据)是LinkedHashMap$Entry类型
LinkedHashMap源码中Entry
// 继承关系在内部类完成
static class Entry<K,V> extends HashMap.Node<K,V> {
        Entry<K,V> before, after;
        Entry(int hash, K key, V value, Node<K,V> next) {
            super(hash, key, value, next);
        }
    }
      Set set=new java.util.LinkedHashSet();
      set.add("789");
      set.add("465");
      set.add("123");

 

posted @ 2026-07-17 13:41  Dr丶云幕  阅读(5)  评论(0)    收藏  举报