基本说明
- LinkedHashSet是HashSet的子类
- LinkedHashSet底层是一个LinkedHashMap,底层维护了一个数组(table)+双向链表
- LinkedHashSet根据元素的hashCode值来决定元素的存储位置,同时使用链表维护次序,这使得元素看起来是以顺序保存的。
- LinkedHashSet不许添加重复元素
- 第一次添加元素数组(table)扩容到16;存放的节点数据类型是
LinkedHashMap$Entry
- 数组是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");
