Java集合框架源码研读-LinkedHashSet

Posted by AlstonWilliams on February 17, 2019

在上一篇文章中,我们介绍了HashSet.今天我们就来介绍一下LinkedHashSet.

其实HashSetLinkedHashSet的关系,就跟HashMapLinkedHashMap的关系一样.

LinkedHashSet是通过实例化一个LinkedHashMap来实现按序访问,只不过LinkedHashSet不允许我们指定按照哪种顺序进行排序,而只是默认按照元素插入的顺序排序.

关于LinkedHashMap的实现原理,请参考我的文章:Java集合框架源码研读-LinkedHashMap

我们看LinkedHashMap的源码,从中根本就看不到跟存储元素插入顺序相关的任何数据结构.

其实,其实现的重点在于其构造函数上,我们看一下其构造函数:

由于LinkedHashSet的父类是HashSet,所以我们查看一下HashSet中相关的构造函数:

看到了吧?就是初始化的一个LinkedHashMap