容器学习六:HashSet & LinkedHashSet & TreeSet源码分析
?一.概述
???? Set是通过Map来支持的,Set接口里的所有方法,都委托给内部的Map去实现。
?
二.HashSet源码
public class LinkedHashSet<E> extends HashSet<E> //extends HashSet implements Set<E>, Cloneable, java.io.Serializable { private static final long serialVersionUID = -2851667679971038690L; public LinkedHashSet(int initialCapacity, float loadFactor) { super(initialCapacity, loadFactor, true); //dummy=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); }?四.TreeSet源码
???? 同HashSet一样的道理,就不贴代码了。
?
五.Set里面是否能存放null
???? 不必刻意去记,把前几篇分析Map的文章搞清楚了,很自然就知道了。
?