首页 > 其他 > 详细

源码之LinkedHashSet

时间:2018-10-28 11:05:32      阅读:118      评论:0      收藏:0      [点我收藏+]
源码
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,?如果你知道,可以留言告诉我哟,谢谢。

源码之LinkedHashSet

原文:http://blog.51cto.com/4837471/2309841

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!