首页 > 代码库 > Set 的其他实现类:LinkedHashSet

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