Set 的其他实现类:LinkedHashSet

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Set 的其他实现类:LinkedHashSet相关的知识,希望对你有一定的参考价值。

LinkedHashSet 使用链表维护了一个添加进集合中的顺序,导致遍历时是以添加的顺序输出的(但不能说是“有序的”),如下:
  1. public class TestSet3 {
  2. public static void main(String[] args) {
  3. Set set = new LinkedHashSet();
  4. set.add("a");
  5. set.add(12);
  6. set.add(new Person1("cdf"));
  7. set.add(345);
  8. System.out.println(set);// [a, 12, Person1 [name=cdf], 345]
  9. }
  10. }

关于其还是无序的说法,参见下图:
技术分享

LinkedHashSet 继承于 HashSet
由于链表的存在,LinkedHashSet 的插入性能略逊于 HashSet,但迭代访问时性能优秀,适合于频繁的遍历与较少的增删操作特点类似 Map 的其他实现类:LinkedHashMap 但是要注意跟“LinkedList 与 ArrayList 的区别”区别
 



以上是关于Set 的其他实现类:LinkedHashSet的主要内容,如果未能解决你的问题,请参考以下文章

Set 的各个实现类的性能分析

JAVA集合HashSetLinkedHashSetTreeSet

LinkedHashSet

Java集合系列四HashSet和LinkedHashSet解析

深入浅出的分析 Set集合

集合类源码Collection之Set(HashSet, LinkedHashSet, TreeSet)