在此示例中,我们将学习计算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); //HashSet1和HashSet2的差集 numbers.removeAll(primeNumbers); System.out.println("没有质数的数: " + numbers); } }
输出结果
数字: [1, 2, 3, 4] 质数: [2, 3] 没有质数的数: [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) { //创建第一个集合 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()方法。