源码之LinkedHashSet
2018-10-28 01:10
666 查看
源码
public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, java.io.Serializable { private static final long serialVersionUID = -2851667679971038690L; public LinkedHashSet(int initialCapacity, float loadFactor) { super(initialCapacity, loadFactor, true); } public LinkedHashSet(int initialCapacity) { super(initialCapacity, .75f, true); } public LinkedHashSet() { super(16, .75f, true); } public LinkedHashSet(Collection<? extends E> c) { super(Math.max(2*c.size(), 11), .75f, true); addAll(c); } @Override public Spliterator<E> spliterator() { return Spliterators.spliterator(this, Spliterator.DISTINCT | Spliterator.ORDERED); } }
分析:
继承自HashSet,而hashSet中第五个构造函数就是通过LinkedHashMap初始化的,所以这个LinkedHashSet其实就是跟LinkedHashMap一样是为了实现能够有序访问HashSet而存在的,上面是LinkedHashSet全部代码,上面唯一让我产生困惑的地方就在super(Math.max(2*c.size(), 11), .75f, true);为什么是11,?如果你知道,可以留言告诉我哟,谢谢。
相关文章推荐
- 集合框架源码分析五之LinkedHashMap,LinkedHashSet
- JAVA LinkedHashSet 和 LinkedHashMap源码剖析
- java源码分析之HashSet及LinkedHashSet
- JDK7集合框架源码阅读(六) HashSet与LinkedHashSet
- Java-Collection源码分析(十二)——Set、AbstractSet、HashSet和LinkedHashSet
- java 源码分析之HashSet及LinkedHashSet
- Java源码之LinkedHashSet
- Java容器源码分析-HashSet vs TreeSet vs LinkedHashSet
- java1.8 常用集合源码学习:LinkedHashSet
- 集合框架源码分析五之LinkedHashMap,LinkedHashSet
- 【Java源码】HashSet、LinkedHashSet
- Java源码初学_HashSet&LinkedHashSet
- JDK源码学习笔记——HashSet LinkedHashSet TreeSet
- java容器源码分析(八)——LinkedHashSet
- JDK源码学习(6)-java.util.HashSet & java.util.LinkedHashSet & java.util.TreeSet
- 【集合框架】JDK1.8源码分析HashSet && LinkedHashSet(八)
- Java Collections Framework之HashSet及LinkedHashSet源码分析(基于JDK1.6)
- 【JDK源码阅读11-util】Set接口---LinkedHashSet
- TreeSet+LinkedHashSet+Comparable+Hashcode+Equals
- HashSet-TreeSet-LinkedHashSet