跳到主要内容

Java 程序:计算两个集合之间的差集

要理解这个示例,你需要了解以下 Java 编程 主题:

示例 1:计算两个集合之间的差异

import java.util.HashSet;
import java.util.Set;

class Main {
public static void main(String[] args) {

// 创建第一个集合
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
System.out.println("数字集: " + numbers);

// 创建第二个集合
Set<Integer> primeNumbers = new HashSet<>();
primeNumbers.add(2);
primeNumbers.add(3);
System.out.println("质数集: " + primeNumbers);

// 计算两个 HashSet 的差异
numbers.removeAll(primeNumbers);
System.out.println("去除质数后的数字集: " + numbers);
}
}

输出

数字集: [1, 2, 3, 4]
质数集: [2, 3]
去除质数后的数字集: [1, 4]

在上面的示例中,我们创建了名为 numbersprimeNumbers 的两个集合。我们使用 HashSet 类实现了集合。请注意这一行,

numbers.retainAll(primeNumbers);

这里,我们使用了 removeAll() 方法来计算两个集合之间的差异。

示例 2:使用 Guava 库计算两个集合的差异

import java.util.HashSet;
import java.util.Set;
import com.google.common.collect.Sets;

class Main {
public static void main(String[] args) {

// 创建第一个集合
Set<String> languages1 = new HashSet<>();
languages1.add("Java");
languages1.add("JavaScript");
languages1.add("English");
languages1.add("Spanish");
System.out.println("语言集: " + languages1);

// 创建第二个集合
Set<String> languages2 = new HashSet<>();
languages2.add("English");
languages2.add("Spanish");
System.out.println("人类语言集: " + languages2);

Set<String> intersect = Sets.difference(languages1, languages2);
System.out.println("编程语言集: " + intersect);
}
}

输出

语言集: [Java, JavaScript, English, Spanish]
人类语言集: [English, Spanish]
编程语言集: [Java, JavaScript]

在上面的示例中,我们使用了 Guava 库 来获取两个集合之间的差异。为了运行这个程序,你需要通过添加它到你的依赖中来实现 Guava 库。

这里,我们使用了 Guava 库中 Sets 类difference() 方法。