在此示例中,我们将学习计算Java中两个集合之间的差集。
要理解此示例,您应该了解以下Java编程主题:
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()方法来计算两组之间的差集。
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()方法。