示例 1:计算两个集合的差集
import java.util.HashSet;
import java.util.Set;
class Main {
public static void main(String[] args) {
// create first set
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
System.out.println("Numbers: " + numbers);
// create second set
Set<Integer> primeNumbers = new HashSet<>();
primeNumbers.add(2);
primeNumbers.add(3);
System.out.println("Prime Numbers: " + primeNumbers);
// Difference between HashSet1 and HashSet2
numbers.removeAll(primeNumbers);
System.out.println("Numbers without prime numbers: " + numbers);
}
}
输出
Numbers: [1, 2, 3, 4] Prime Numbers: [2, 3] Numbers without prime numbers: [1, 4]
在上面的示例中,我们创建了两个名为 numbers 和 primeNumbers 的集合。我们使用 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) {
// create the first set
Set<String> languages1 = new HashSet<>();
languages1.add("Java");
languages1.add("JavaScript");
languages1.add("English");
languages1.add("Spanish");
System.out.println("Languages: " + languages1);
// create second set
Set<String> languages2 = new HashSet<>();
languages2.add("English");
languages2.add("Spanish");
System.out.println("Human Languages: " + languages2);
Set<String> intersect = Sets.difference(languages1, languages2);
System.out.println("Programming Languages: " + intersect);
}
}
输出
Languages: [Java, JavaScript, English, Spanish] Human Languages: [English, Spanish] Programming Languages: [Java, JavaScript]
在上面的示例中,我们使用了 Guava 库来获取两个集合的差集。要运行此程序,您需要在依赖项中添加 Guava 库。
在这里,我们使用了 Guava 库中 Sets
类的 difference()
方法。