Java ArrayList containsAll()方法檢查arraylist是否包含指定集合的所有元素。
containsAll()方法的語(yǔ)法為:
arraylist.containsAll(Collection c);
collection - 檢查集合的所有元素是否都出現(xiàn)在arraylist中。
如果arraylist包含指定集合的所有元素,則返回true
如果arraylist中存在的元素類與指定集合中的元素類不兼容,則引發(fā)ClassCastException
如果集合包含null元素且arraylist不允許null值,則引發(fā)NullPointerException
注意:可以說(shuō)containsAll()方法檢查集合是否為arraylist的子集。
import java.util.ArrayList; class Main { public static void main(String[] args) { //創(chuàng)建 ArrayList ArrayList<String> languages1 = new ArrayList<>(); //添加元素到 ArrayList languages1.add("JavaScript"); languages1.add("Python"); languages1.add("Java"); System.out.println("ArrayList 1: " + languages1); //創(chuàng)建另一個(gè) ArrayList ArrayList<String> languages2 = new ArrayList<>(); //添加元素到 ArrayList languages2.add("Java"); languages2.add("Python"); System.out.println("ArrayList 2: " + languages2); // 檢查ArrayList 1是否包含ArrayList 2 boolean result1 = languages1.containsAll(languages2); System.out.println(" ArrayList 1包含ArrayList 2的所有元素 : " + result1); // 檢查ArrayList 2是否包含ArrayList 1 boolean result2 = languages2.containsAll(languages1); System.out.println(" ArrayList 2包含ArrayList 1的所有元素 : " + result2); } }
輸出結(jié)果
ArrayList 1: [JavaScript, Python, Java] ArrayList 2: [Java, Python] ArrayList 1包含ArrayList 2的所有元素 : true ArrayList 2包含ArrayList 1的所有元素 : false
在上面的示例中,我們創(chuàng)建了兩個(gè)名為languages1和languages2的ArrayList。注意表達(dá)式
// 返回 true languages1.containsAll(languages2)
這里,containsAll()方法檢查languages1是否包含languages2的所有元素。因此,該方法返回true。但是,請(qǐng)注意下面的表達(dá)式:
// 返回 false languages2.containsAll(languages1)
這里,containsAll()方法檢查languages2是否包含languages1的所有元素。因此,返回false
注意:containsAll()方法不是特定于ArrayList類的。該類繼承自List接口。
import java.util.ArrayList; import java.util.HashSet; class Main { public static void main(String[] args) { //創(chuàng)建 ArrayList ArrayList<Integer> numbers = new ArrayList<>(); //添加元素到 ArrayList numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("ArrayList: " + numbers); //創(chuàng)建 HashSet HashSet<Integer> primeNumbers = new HashSet<>(); //添加元素到 HashSet primeNumbers.add(2); primeNumbers.add(3); System.out.println("HashSet: " + primeNumbers); // 檢查ArrayList是否包含HashSet的所有元素 boolean result1 = numbers.containsAll(primeNumbers); System.out.println("ArrayList包含HashSet的所有元素 : " + result1); // 檢查HashSet是否包含ArrayList的所有元素 boolean result2 = primeNumbers.containsAll(numbers); System.out.println("HashSet包含ArrayList的所有元素 : " + result2); } }
輸出結(jié)果
ArrayList: [1, 2, 3] HashSet: [2, 3] ArrayList包含HashSet的所有元素 : true HashSet包含ArrayList的所有元素 : false
在上面的示例中,我們創(chuàng)建了一個(gè)名為numbers的arraylist和一個(gè)名為primeNumbers的哈希集合。注意這些表達(dá)式,
// 檢查ArrayList是否包含HashSet // 返回 true numbers.containsAll(primeNumbers) // 檢查HashSet是否包含ArrayList // 返回 false primeNumbers.containsAll(numbers)
注意:我們可以使用Java ArrayList retainAll()方法獲取ArrayList和HashSet之間的公共元素。