Java集合源码学习(11)_Set接口的实现LinkedHashSet

时间:2021-09-02 15:25:30

该类继承自HashSet;

public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, java.io.Serializable {

与HashSet不同的地方是,维护了一个双向链表,记录着元素被插入set中的顺序;iterator迭代数据的时候,是按照这个插入的顺序的;

HashSet中有一个构造方法是专门提供给LinkedHashSet的,内部是依赖于LinkedHashMap的

HashSet(int initialCapacity, float loadFactor, boolean dummy) {
map = new LinkedHashMap<E, Object>(initialCapacity, loadFactor);
}


LinkedHashSet的构造方法:

public LinkedHashSet(int initialCapacity) {
super(initialCapacity, .75f, true);
}