Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java ArrayList containsAll() 使用方法及示例

Java ArrayList 方法

Java ArrayList containsAll()方法检查arraylist是否包含指定集合的所有元素。

containsAll()方法的语法为:

arraylist.containsAll(Collection c);

containsAll()参数

  • collection - 检查集合的所有元素是否都出现在arraylist中。

containsAll()返回值

  • 如果arraylist包含指定集合的所有元素,则返回true

  • 如果arraylist中存在的元素类与指定集合中的元素类不兼容,则引发ClassCastException

  • 如果集合包含null元素且arraylist不允许null值,则引发NullPointerException

注意:可以说containsAll()方法检查集合是否为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

在上面的示例中,我们创建了两个名为languages1和languages2的ArrayList。注意表达式

// 返回 true
languages1.containsAll(languages2)

这里,containsAll()方法检查languages1是否包含languages2的所有元素。因此,该方法返回true。但是,请注意下面的表达式:

// 返回 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的哈希集合。注意这些表达式,

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

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

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

Java ArrayList 方法