Java 集合框架之 Set 系列
LinkedHashSet 学习总结 - 基于JDK1.8
继承关系:
LinkedHashSet实际上是继承了HashSet实现的
public class LinkedHashSet<E>
extends HashSet<E>
implements Set<E>, Cloneable, java.io.Serializable
它的内部实现map就不再是HashSet中设置的HashMap
而是HashSet中设置的LinkedHashMap
以无参构造为例:
public LinkedHashSet() {
// 所有构造方法在调用父类HashSet的构造方法时都将最后一个参数设置为true
super(16, .75f, true);
}
// 实际调用的一定是HashSet的这个构造方法
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
// 可见HashSet中的Map不再是HashMap而是使用的LinkedHashMap
map = new LinkedHashMap<>(initialCapacity, loadFactor);
}
总结:
LinkedHashSet的实现实际是LinkedHashMap,它是有序的,不可重复的单列Set集合
对于HashSet和LinkedHashSet的底层实现应该重点关注与HashMap和LinkedHashMap,就不再此处赘述了