计算两集合差值的 Java 程序
要理解此示例,您应该具备以下 Java 编程的知识:
示例 1:计算两组之间的差值
import java.util.HashSet;
import java.util.Set;
public 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;
public 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()
方法。