在此示例中,我們將學(xué)習(xí)計算Java中兩個集合之間的差集。
要理解此示例,您應(yīng)該了解以下Java編程主題:
import java.util.HashSet;
import java.util.Set;
class Main {
public static void main(String[] args) {
//創(chuàng)建第一個集合
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
System.out.println("數(shù)字: " + numbers);
//創(chuàng)建第二個集合
Set<Integer> primeNumbers = new HashSet<>();
primeNumbers.add(2);
primeNumbers.add(3);
System.out.println("質(zhì)數(shù): " + primeNumbers);
//HashSet1和HashSet2的差集
numbers.removeAll(primeNumbers);
System.out.println("沒有質(zhì)數(shù)的數(shù): " + numbers);
}
}輸出結(jié)果
數(shù)字: [1, 2, 3, 4] 質(zhì)數(shù): [2, 3] 沒有質(zhì)數(shù)的數(shù): [1, 4]
在上面的示例中,我們創(chuàng)建了兩個名為numbers和primeNumbers的集合。我們使用HashSet類實現(xiàn)了該集合。注意這一行,
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) {
//創(chuàng)建第一個集合
Set<String> languages1 = new HashSet<>();
languages1.add("Java");
languages1.add("JavaScript");
languages1.add("English");
languages1.add("Spanish");
System.out.println("語言: " + languages1);
//創(chuàng)建第二個集合
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);
}
}輸出結(jié)果
語言: [Java, JavaScript, English, Spanish] 人類語言: [English, Spanish] 編程語言: [Java, JavaScript]
在上面的示例中,我們使用了Guava庫來獲取兩組之間的差集。為了運(yùn)行該程序,您需要通過在依賴項中添加Guava庫來實現(xiàn)它。
在這里,我們使用了Guava庫中存在的Sets類的difference()方法。