Java ArrayList removeAll()

removeAll() 方法的语法是:

arraylist.removeAll(Collection c);

在这里,arraylist对象ArrayList 类的一个 对象


removeAll() 参数

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

  • collection - collection 中存在的所有元素都将从 ArrayList 中删除。

removeAll() 返回值

  • 如果从 ArrayList 中删除了元素,则返回 true
  • 如果 ArrayList 中的元素类与指定的 collection 中的元素类不兼容,则抛出 ClassCastException
  • 如果 ArrayList 包含 null 元素,而指定的 collection 不允许 null 元素,则抛出 NullPointerException

示例 1:从 ArrayList 中删除所有元素

import java.util.ArrayList;

class Main {
    public static void main(String[] args){

        // create an arraylist
        ArrayList<String> languages = new ArrayList<>();

        // add elements to arraylist
        languages.add("Java");
        languages.add("JavaScript");
        languages.add("Python");
        System.out.println("Programming Languages: " + languages);

        // remove all elements from arraylist
        languages.removeAll(languages);
        System.out.println("ArrayList after removeAll(): " + languages);
    }
}

输出

Programming Languages: [Java, JavaScript, Python]
ArrayList after removeAll(): []

在上面的示例中,我们创建了一个名为 languages 的 ArrayList。该 ArrayList 存储编程语言的名称。注意这一行:

languages.removeAll(languages);

在这里,我们将 ArrayList languages 作为 removeAll() 方法的参数传递。因此,该方法会从 ArrayList 中删除所有元素。

注意:首选使用 clear() 方法从 ArrayList 中删除所有元素。要了解更多信息,请访问 Java ArrayList clear()


示例 2:从 ArrayList 中删除另一个 ArrayList 中存在的所有元素

import java.util.ArrayList;

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

        // insert element at the end of arraylist
        languages1.add("Java");
        languages1.add("English");
        languages1.add("C");
        languages1.add("Spanish");
        System.out.println("Languages1: " + languages1);

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

        // add elements to the arraylist
        languages2.add("English");
        languages2.add("Spanish");
        System.out.println("Languages2: " + languages2);

        // remove all elements of ArrayList2 from ArrayList1
        languages1.removeAll(languages2);
        System.out.println("Languages1 after removeAll(): " + languages1);
    }
}

输出

Languages1: [Java, English, C, Spanish]
Languages2: [English, Spanish]
Languages1 after removeAll(): [Java, C]

在上面的示例中,我们创建了两个名为 languages1languages2 的 ArrayList。注意这一行:

languages1.removeAll(languages2);

在这里,removeAll() 方法用于从 languages1 中删除所有也存在于 languages2 中的元素。因此,EnglishSpanishlanguages1 中删除。


示例 3:从 ArrayList 中删除 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);
        numbers.add(4);
        System.out.println("ArrayList: " + numbers);

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

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

        // remove all elements of HashSet from ArrayList
        numbers.removeAll(primeNumbers);
        System.out.println("ArrayList after removeAll(): " + numbers);
    }
}

输出

ArrayList: [1, 2, 3, 4]
HashSet: [2, 3]
ArrayList after removeAll(): [1, 4]

在上面的示例中,我们创建了一个名为 numbers 的 ArrayList 和一个名为 primeNumbers 的 HashSet。注意这一行:

numbers.removeAll(primeNumbers);

在这里,removeAll() 方法会从 numbers 中删除所有也存在于 primeNumbers 中的元素。因此,23 从 ArrayList numbers 中删除。


另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战