Java ArrayList containsAll()方法检查arraylist是否包含指定集合的所有元素。
containsAll()方法的语法为:
arraylist.containsAll(Collection c);
collection - 检查集合的所有元素是否都出现在arraylist中。
如果arraylist包含指定集合的所有元素,则返回true
如果arraylist中存在的元素类与指定集合中的元素类不兼容,则引发ClassCastException
如果集合包含null元素且arraylist不允许null值,则引发NullPointerException
注意:可以说containsAll()方法检查集合是否为arraylist的子集。
import java.util.ArrayList; class Main { public static void main(String[] args) { //创建 ArrayList ArrayList<String> languages1 = new ArrayList<>(); //添加元素到 ArrayList languages1.add("JavaScript"); languages1.add("Python"); languages1.add("Java"); System.out.println("ArrayList 1: " + languages1); //创建另一个 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); } }
输出结果
ArrayList 1: [JavaScript, Python, Java] ArrayList 2: [Java, Python] ArrayList 1包含ArrayList 2的所有元素 : true ArrayList 2包含ArrayList 1的所有元素 : false
在上面的示例中,我们创建了两个名为languages1和languages2的ArrayList。注意表达式
// 返回 true languages1.containsAll(languages2)
这里,containsAll()方法检查languages1是否包含languages2的所有元素。因此,该方法返回true。但是,请注意下面的表达式:
// 返回 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) { //创建 ArrayList ArrayList<Integer> numbers = new ArrayList<>(); //添加元素到 ArrayList numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("ArrayList: " + numbers); //创建 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); } }
输出结果
ArrayList: [1, 2, 3] HashSet: [2, 3] ArrayList包含HashSet的所有元素 : true HashSet包含ArrayList的所有元素 : false
在上面的示例中,我们创建了一个名为numbers的arraylist和一个名为primeNumbers的哈希集合。注意这些表达式,
// 检查ArrayList是否包含HashSet // 返回 true numbers.containsAll(primeNumbers) // 检查HashSet是否包含ArrayList // 返回 false primeNumbers.containsAll(numbers)
注意:我们可以使用Java ArrayList retainAll()方法获取ArrayList和HashSet之间的公共元素。