跳到主要内容

Java ArrayList retainAll() 方法

并且,所有不在指定集合中的元素将从 arraylist 中移除。

retainAll() 方法的语法是:

arraylist.retainAll(Collection c);

这里,arraylistArrayList 类的一个对象。

retainAll() 参数

retainAll() 方法接受单个参数。

  • collection - 只有在 collection 中存在的元素才会保留在 arraylist 中。

retainAll() 返回值

  • 如果 arraylist 中的元素被移除,则返回 true
  • 如果 arraylist 中存在的元素的类与指定 collection 中的元素的类不兼容,则抛出 ClassCastException
  • 如果 arraylist 包含 null 元素,且指定的 collection 不允许 null 元素,则抛出 NullPointerException

示例 1:Java ArrayList retainAll()

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("English");
languages2.add("Java");
languages2.add("Python");
System.out.println("ArrayList 2: " + languages2);

// 保留共同的元素
languages1.retainAll(languages2);
System.out.println("共同元素: " + languages1);
}
}

输出

ArrayList 1: [JavaScript, Python, Java]
ArrayList 2: [English, Java, Python]
共同元素: [Python, Java]

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

languages1.retainAll(languages2);

这里,我们将 languages2 作为参数传递给 retainAll() 方法。该方法将从 languages1 中移除所有不在 languages2 中的元素。因此,只有共同的元素被保留。

示例 2:显示 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);
System.out.println("ArrayList: " + numbers);

// 创建一个 HashSet
HashSet<Integer> primeNumbers = new HashSet<>();

// 向 HashSet 添加元素
primeNumbers.add(2);
primeNumbers.add(3);
primeNumbers.add(5);
System.out.println("HashSet: " + primeNumbers);

// 在 ArrayList 中保留共同的元素
numbers.retainAll(primeNumbers);
System.out.println("共同元素: " + numbers);
}
}

输出

ArrayList: [1, 2, 3]
HashSet: [2, 3, 5]
共同元素: [2, 3]

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

numbers.retainAll(primeNumbers);

这里,retainAll() 方法从 numbers 中移除了所有不在 primeNumbers 中的元素。并且,只保留了共同的元素。因此,23 被保留在 numbers 中。