使用Java中的LinkedHashSet retainAll()方法的示例

使用Java中的LinkedHashSet retainAll()方法的示例

LinkedHashSet是Java中Set接口的一种实现,它可以保持插入顺序并且不允许重复元素。而retainAll()是Set接口中的一个方法,用于保留两个集合的交集。

我们先来看一下LinkedHashSet的基本使用。在Java中创建LinkedHashSet就是调用它的构造函数:

LinkedHashSet<Integer> set = new LinkedHashSet<>();

这样就创建了一个空的LinkedHashSet。我们可以调用它的add()方法往里面添加元素:

set.add(5);
set.add(2);
set.add(3);
set.add(4);
set.add(1);

这些元素会保持它们加入set的顺序。如果我们再添加一个重复的元素,LinkedHashSet会自动忽略它:

set.add(3);

现在,set中的元素顺序为:5, 2, 3, 4, 1。

使用retainAll方法取交集

我们假设有两个LinkedHashSet:

LinkedHashSet<Integer> set1 = new LinkedHashSet<>(Arrays.asList(1, 2, 3, 4, 5));
LinkedHashSet<Integer> set2 = new LinkedHashSet<>(Arrays.asList(2, 4, 6, 8, 10));

这两个集合分别包含1到5和2到10中的偶数。我们可以使用retainAll()方法来计算它们的交集:

set1.retainAll(set2);

现在,set1中只保留了set2也包含的元素,即2和4。set1的内容为:

2, 4

我们也可以将set2改为:

LinkedHashSet<Integer> set2 = new LinkedHashSet<>(Arrays.asList(1, 3, 5, 7, 9));

这样,set1.retainAll(set2)会将set1清空,因为set1和set2没有任何交集。

完整示例代码

import java.util.Arrays;
import java.util.LinkedHashSet;

public class LinkedHashSetExample {
    public static void main(String[] args) {
        LinkedHashSet<Integer> set = new LinkedHashSet<>();
        set.add(5);
        set.add(2);
        set.add(3);
        set.add(4);
        set.add(1);
        set.add(3);

        System.out.println("set: " + set);

        LinkedHashSet<Integer> set1 = new LinkedHashSet<>(Arrays.asList(1, 2, 3, 4, 5));
        LinkedHashSet<Integer> set2 = new LinkedHashSet<>(Arrays.asList(2, 4, 6, 8, 10));
        set1.retainAll(set2);
        System.out.println("set1: " + set1);

        set2 = new LinkedHashSet<>(Arrays.asList(1, 3, 5, 7, 9));
        set1.retainAll(set2);
        System.out.println("set1: " + set1);
    }
}

结论

LinkedHashSet retainAll()方法可用于计算两个集合的交集,并将结果保存到第一个集合中。该方法是在Set接口中定义的,因此它也可以用于其他Set接口的实现类,如HashSet和TreeSet。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程