跳到主要内容

Java ArrayList containsAll() 方法

containsAll() 方法的语法是:

arraylist.containsAll(Collection c);

这里的 arraylistArrayList 类的一个对象。

containsAll() 方法的参数

containsAll() 方法接受一个参数。

  • collection - 检查 collection 中的所有元素是否都存在于 arraylist 中。

containsAll() 方法的返回值

  • 如果 arraylist 包含 collection 的所有元素,则返回 true
  • 如果 arraylist 中存在的元素类别与指定的 collection 中的元素类别不兼容,则抛出 ClassCastException
  • 如果 collection 包含 null 元素,而 arraylist 不允许 null 值,则抛出 NullPointerException

注意:我们可以说,containsAll() 方法检查 collection 是否是 arraylist 的子集。

示例 1:Java ArrayList containsAll()

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

在上面的示例中,我们创建了两个名为 languages1languages2 的 arraylists。请注意这个表达式,

// 返回 true
languages1.containsAll(languages2)

这里,containsAll() 方法检查 languages1 是否包含 languages2 的所有元素。因此,该方法返回 true。然而,请注意以下表达式,```java // 返回 false languages2.containsAll(languages1)

这里,containsAll() 方法检查 languages2 是否包含 languages1 的所有元素。因此,它返回 false

注意containsAll() 方法不仅限于 ArrayList 类。该类从 List 接口继承。

示例 2:Java ArrayList 和 HashSet 之间的 containsAll()

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 的 hashset。请注意这些表达式,

// 检查 ArrayList 是否包含 HashSet
// 返回 true
numbers.containsAll(primeNumbers)

// 检查 HashSet 是否包含 ArrayList
// 返回 false
primeNumbers.containsAll(numbers)

注意:我们可以使用 Java ArrayList retainAll() 方法获取 ArrayListHashSet 之间的共同元素。