Java ArrayList containsAll()

The Java ArrayList containsAll() method checks whether the arraylist contains all the elements of the specified collection.

The syntax of the containsAll() method is:

arraylist.containsAll(Collection c);

Here, arraylist is an object of the ArrayList class.


containsAll() Parameters

The containsAll() method takes a single parameter.

  • collection - checks if all elements of collection are present in the arraylist.

containsAll() Return Value

  • returns true if the arraylist contains all elements of collection
  • throws ClassCastException if the class of elements present in arraylist is incompatible with the class of elements in the specified collection
  • throws NullPointerException if collection contains null elements and the arraylist does not allow null values

Note: We can say that the containsAll() method checks if the collection is a subset of the arraylist.


Example 1: Java ArrayList containsAll()

import java.util.ArrayList;

class Main {
    public static void main(String[] args) {
        // create an ArrayList
        ArrayList<String> languages1 = new ArrayList<>();

        // insert element to the ArrayList
        languages1.add("JavaScript");
        languages1.add("Python");
        languages1.add("Java");
        System.out.println("ArrayList 1: " + languages1);

        // create another ArrayList
        ArrayList<String> languages2 = new ArrayList<>();

        // add elements to ArrayList
        languages2.add("Java");
        languages2.add("Python");
        System.out.println("ArrayList 2: " + languages2);

        // check if ArrayList 1 contains ArrayList 2
        boolean result1 = languages1.containsAll(languages2);
        System.out.println("ArrayList 1 contains all elements of ArrayList 2: " + result1);

        // check if ArrayList 2 contains ArrayList 1
        boolean result2 = languages2.containsAll(languages1);
        System.out.println("ArrayList 2 contains all elements of ArrayList 1: " + result2);
    }
}

Output

ArrayList 1: [JavaScript, Python, Java]
ArrayList 2: [Java, Python]
ArrayList 1 contains all elements of ArrayList 2: true
ArrayList 2 contains all elements of ArrayList 1: false

In the above example, we have created two arraylists named languages1 and languages2. Notice the expression,

// return true
languages1.containsAll(languages2)

Here, the containsAll() method checks if languages1 contains all elements of languages2. Hence, the method returns true. However, notice the following expression,

// return false
languages2.containsAll(languages1)

Here, the containsAll() method checks if languages2 contains all elements of languages1. Hence, it returns false.

Note: The containsAll() method is not specific to the ArrayList class. The class inherits from the List interface.


Example 2: containsAll() Between Java ArrayList and HashSet

import java.util.ArrayList;
import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        // create an ArrayList
        ArrayList<Integer> numbers = new ArrayList<>();

        // add element to ArrayList
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        System.out.println("ArrayList: " + numbers);

        // create a HashSet
        HashSet<Integer> primeNumbers = new HashSet<>();

        // add elements to HashSet
        primeNumbers.add(2);
        primeNumbers.add(3);
        System.out.println("HashSet: " + primeNumbers);

        // check if ArrayList contains all elements of HashSet
        boolean result1 = numbers.containsAll(primeNumbers);
        System.out.println("ArrayList contains all elements of HashSet: " + result1);

        // check if HashSet contains all elements of ArrayList
        boolean result2 = primeNumbers.containsAll(numbers);
        System.out.println("HashSet contains all elements of ArrayList: " + result2);
    }
}

Output

ArrayList: [1, 2, 3]
HashSet: [2, 3]
ArrayList contains all elements of HashSet: true
HashSet contains all elements of ArrayList: false

In the above example, we have created an arraylist named numbers and a hashset named primeNumbers. Notice the expressions,

// check if ArrayList contains HashSet
// return true
numbers.containsAll(primeNumbers)

// check if HashSet contains ArrayList
// return false
primeNumbers.containsAll(numbers)

Note: We can get the common elements between ArrayList and HashSet using the Java ArrayList retainAll() method.