📅  最后修改于: 2023-12-03 14:42:48.572000             🧑  作者: Mango
LinkedHashSet 是 Java 中一种可以维护元素插入顺序的哈希表,其实现方式类似 HashSet,但是同时使用了链表维护元素的插入顺序。因此,在迭代时,LinkedHashSet 按插入顺序返回元素。
retainAll() 方法是 Set 接口的一个方法,用于计算此集合与特定集合的交集,即仅保留此集合和特定集合中共有的元素。
本文将介绍 LinkedHashSet 中的 retainAll() 方法,讲解其使用方式以及示例代码。
retainAll() 方法的使用方式如下:
boolean retainAll(Collection<?> c)
该方法会保留包含在给定集合 c 中的集合元素,同时删除此 set 中的所有其他元素。
具体来说,以下是执行 retainAll() 方法的步骤:
我们以 LinkedHashSetExample 类为例,展示 LinkedHashSet retainAll() 方法的运用。
这里我们先定义一个 LinkedHashSet 对象 set1,并向其中添加连续的 10 个整型数字。然后,我们再定义另一个 LinkedHashSet 对象 set2,并向其中添加数字 5 到 15 之间的数字。
接下来,我们执行 set1.retainAll(set2) 方法,来计算两个集合的交集。
示例代码如下:
import java.util.LinkedHashSet;
public class LinkedHashSetExample {
public static void main(String[] args) {
LinkedHashSet<Integer> set1 = new LinkedHashSet<>();
for (int i = 1; i <= 10; i++) {
set1.add(i);
}
System.out.println("Set 1: " + set1);
LinkedHashSet<Integer> set2 = new LinkedHashSet<>();
for (int i = 5; i <= 15; i++) {
set2.add(i);
}
System.out.println("Set 2: " + set2);
set1.retainAll(set2);
System.out.println("Intersection of Set 1 and Set 2: " + set1);
}
}
输出结果:
Set 1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Set 2: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
Intersection of Set 1 and Set 2: [5, 6, 7, 8, 9, 10]
示例代码中,我们可以看到 set1 和 set2 的内容,以及它们的交集。
在 set1.retainAll(set2) 方法执行后,set1 中只剩下交集部分,即数字 5 到 10,与 set2 的内容一致。
本文介绍了 LinkedHashSet retainAll() 方法的使用方式,以及示例代码。retainAll() 方法可以方便地计算集合之间的交集,并返回集合是否更改的状态。