例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 library 来获取两组之间的差异.为了运行这个程序,你需要通过在你的依赖中添加它来实现 Guava 库。
这里,我们使用了 difference() 方法">设置类存在于番石榴库中。