📅  最后修改于: 2023-12-03 15:31:35.162000             🧑  作者: Mango
Java.util.LinkedHashSet类是Java编程语言中的一种集合框架,推出于JDK 1.4版本。它是HashSet类的子类,继承HashSet的所有属性,同时添加了一个链表来记录添加元素的顺序。因此,LinkedHashSet对于保存有序的元素集是很有用的,也是HashSet缺省的排序集合。
Java.util.LinkedHashSet类是通过HashMap来实现的。HashSet只是在HashMap的基础上去掉了Value的部分,只留下了Key部分。
HashMap会将元素的hash码作为下标存储在数组中,而相同hash码的元素会以链表结构存储在数组中。在LinkedHashSet中,当向HashSet中添加元素时,会通过hash算法计算元素的hash码,然后将元素添加到HashMap中,同时将元素保存在双向链表中,保证它们的顺序。
LinkedHashSet类的使用方法与HashSet大致相同,只是它可以保证元素的顺序。
可以使用以下方式创建LinkedHashSet对象:
Set<String> linkedHashSet = new LinkedHashSet<>();
LinkedHashSet类的添加元素方法和HashSet相同。
linkedHashSet.add("苹果");
linkedHashSet.add("香蕉");
linkedHashSet.add("草莓");
使用for-each循环进行迭代LinkedHashSet中的元素。
for (String str : linkedHashSet) {
System.out.println(str);
}
可以使用contains()方法来判断元素是否存在于LinkedHashSet中。
System.out.println(linkedHashSet.contains("苹果"));
LinkedHashSet类包含了remove()方法来删除指定元素。
linkedHashSet.remove("草莓");
LinkedHashSet保证元素不重复,因此可以用于去除集合中的重复元素。
Set<String> set = new HashSet<>();
set.add("Java");
set.add("Python");
set.add("Java");
set.add("Go");
System.out.println(set); // [Java, Python, Go]
Set<String> linkedSet = new LinkedHashSet<>(set);
System.out.println(linkedSet); // [Java, Python, Go]