LinkedHashSet
特性
以插入顺序保存元素,当遍历该集合时候,将会以元素的添加顺序访问集合的元素。
迭代性能比HashSet好,但是插入时性能稍微逊色于HashSet(其实是HashMap与LinkedHashMap的特点)。
实现
LinkedHashSet的底层数据结构为LinkedHashMap,所有操作均是通过调用LinkedHashMap(继承自HashMap)的方法来实现的。
因为继承自HashSet,而HashSet内部的数据结构为HashMap,所以,LinkedHashSet中的代码只有几个构造器。
public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, java.io.Serializable {
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);
}
}
父类HashSet中对应的构造器如下
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
map = new LinkedHashMap<>(initialCapacity, loadFactor);
}
Last updated