这是我参与11月更文挑战的第27天,活动详情查看:2021最后一次更文挑战」
前言
大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习进步。
复制代码
在读本篇之前希望读者先了解HashSet类,这样对与LinkedHashSet类的学习会更加容易。可以参考以下链接:
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要介绍Java集合的LinkedHashSet类的基本特点和常用的方法。
复制代码
1. LinkedHashSet类
1.1 什么是LinkedHashSet类
LinkedHashSet继承了HashSet。与HashMap有所不同的是它底层使用LinkedHashMap来实现,即在HashMap的基础上新增加了一个双向链表来确保迭代有序(迭代的元素顺序和插入的元素顺序相同)。因此性能略低于HashSet,但是迭代访问元素时将具有很好的性能,因为它的内部是以链表来实现。
允许存放null元素,此实现不是同步的。
1.2 LinkedHashSet类的构造方法
LinkedHashSet有四个构造方法,如下:
LinkedHashSet() 构造一个带默认初始容量 (16) 和加载因子 (0.75) 的新空链接哈希 set。 |
---|
LinkedHashSet(Collection c) 构造一个与指定 collection 中的元素相同的新链接哈希 set。 |
LinkedHashSet(int initialCapacity) 构造一个带指定初始容量和默认加载因子 (0.75) 的新空链接哈希 set。 |
LinkedHashSet(int initialCapacity, float loadFactor) 构造一个带有指定初始容量和加载因子的新空链接哈希 set。 |
实例展示:
public class LinkedHashSetTest {
public static void main(String[] args) {
LinkedHashSet linkedHashSet = new LinkedHashSet<>();
ArrayList arrayList = new ArrayList<String>();
arrayList.add("1");
arrayList.add("2");
arrayList.add("3");
LinkedHashSet linkedHashSet1 = new LinkedHashSet<>(arrayList);
LinkedHashSet linkedHashSet2 = new LinkedHashSet<>(32);
LinkedHashSet linkedHashSet3 = new LinkedHashSet<>(32,0.8f);
linkedHashSet2.add(1);
linkedHashSet2.add(3);
linkedHashSet2.add(2);
linkedHashSet2.add(0);
Iterator iterator = linkedHashSet2.iterator();
while(iterator.hasNext()){
Object next = iterator.next();
System.out.println(next);
}
}
}
复制代码
可以看到,输出元素的顺序和插入元素的顺序是一致的,这是LinkedHashSet类的一大特点。
1.3 LinkedHashSet类的普通方法
LinkedHashSet并没有自己独有的方法,LinkedHashSet的方法都是从父类HashSet继承和实现Set接口和Object类而来,这里就不再赘诉。
扫描二维码关注公众号,回复:
13469979 查看本文章

小结
以上就是LinkedHashSet类的一些介绍,到此我们已经把Set集合中的一些常用类学完了,接下来我们继续来学习Collection集合中的List集合。以上内容希望对读者有所帮助,如有不足之处,欢迎留言指正。