在上一篇中我们介绍了LinkedHashMap集合的底层实现,并了解了LinkedHashMap底层是通过HashMap集合实现的。所以LinkedHashMap集合除了具有自己独特的特性外,其它的特性基本和HashMap的特性是一样的。那么在这一篇我们将学习LinkedHashSet集合的知识。在HashSet这篇文章中我们已经介绍过HashSet底层也是通过HashMap集合实现的。所以我们通过LinkedHashSet集合的名字就基本可以猜到,LinkedHashSet集合底层应该就是用LinkedHashMap集合实现的。这是因为只有LinkedHashMap这种集合的底层实现才能保证LinkedHashSet集合添加元素的顺序与访问元素的顺序一致,这也就是LinkedHashSet集合相比HashSet集合的一种独特的特性。为了证明我们上述所说的,我们简单查看一下LinkedHashSet集合的源码,因为大部分源码涉及到的逻辑已经在LinkedHashMap集合中介绍过了,所以这里我们只是简单的查看,不做过多的说明。还是和其它集合一样 ,我们首先看LinkedHashSet集合的初始化。
下面我们看一下LinkedHashSet中add方法的底层实现。
我们看上面代码逻辑就是直接调用了map的put方法,这一点和HashSet的底层一样。
总结