跳到主要内容

Java ArrayList removeAll() 方法

removeAll() 方法的语法是:

arraylist.removeAll(Collection c);

这里,arraylistArrayList 类的一个对象。

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){

// 创建一个 arraylist
ArrayList<String> languages = new ArrayList<>();

// 向 arraylist 添加元素
languages.add("Java");
languages.add("JavaScript");
languages.add("Python");
System.out.println("编程语言:" + languages);

// 从 arraylist 移除所有元素
languages.removeAll(languages);
System.out.println("调用 removeAll() 后的 ArrayList:" + languages);
}
}

输出

编程语言:[Java, JavaScript, Python]
调用 removeAll() 后的 ArrayList[]

在上面的示例中,我们创建了一个名为 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) {
// 创建一个 ArrayList
ArrayList<String> languages1 = new ArrayList<>();

// 向 arraylist 末尾插入元素
languages1.add("Java");
languages1.add("English");
languages1.add("C");
languages1.add("Spanish");
System.out.println("Languages1:" + languages1);

// 创建另一个 arraylist
ArrayList<String> languages2 = new ArrayList<>();

// 向 arraylist 添加元素
languages2.add("English");
languages2.add("Spanish");
System.out.println("Languages2:" + languages2);

// 从 ArrayList1 中移除所有存在于 ArrayList2 中的元素
languages1.removeAll(languages2);
System.out.println("调用 removeAll() 后的 Languages1:" + languages1);
}
}
```**输出**

```java
Languages1: [Java, English, C, Spanish]
Languages2: [English, Spanish]
调用 removeAll() 后的 Languages1: [Java, C]

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

languages1.removeAll(languages2);

这里,removeAll() 方法用于从 languages1 中移除所有也出现在 languages2 中的元素。因此,EnglishSpanish 被从 languages1 中移除。

示例 3:从 ArrayList 中移除存在于 HashSet 中的所有元素

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);
numbers.add(4);
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 的元素
numbers.removeAll(primeNumbers);
System.out.println("调用 removeAll() 后的 ArrayList: " + numbers);
}
}

输出

ArrayList: [1, 2, 3, 4]
HashSet: [2, 3]
调用 removeAll() 后的 ArrayList: [1, 4]

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

numbers.removeAll(primeNumbers);

这里,removeAll() 方法移除了 numbers 中所有也出现在 primeNumbers 中的元素。因此,23 被从 arraylist numbers 中移除。