并且,列表中所有不在指定集合中的元素都会被移除。
retainAll()
方法的语法是
arraylist.retainAll(Collection c);
在这里,arraylist 是 对象 的 ArrayList 类的一个 对象。
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) {
// 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("English");
languages2.add("Java");
languages2.add("Python");
System.out.println("ArrayList 2: " + languages2);
// retain the common element
languages1.retainAll(languages2);
System.out.println("Common Elements: " + languages1);
}
}
输出
ArrayList 1: [JavaScript, Python, Java] ArrayList 2: [English, Java, Python] Common Elements: [Python, Java]
在上面的示例中,我们创建了两个名为 languages1 和 languages2 的 ArrayList。请注意这一行:
languages1.retainAll(languages2);
这里,我们将 ArrayList languages2 作为参数传递给 retainAll()
方法。该方法会从 languages1 中移除所有不在 languages2 中的元素。因此,只保留了共同的元素。
示例 2:显示 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);
System.out.println("ArrayList: " + numbers);
// create a HashSet
HashSet<Integer> primeNumbers = new HashSet<>();
// add elements to HashSet
primeNumbers.add(2);
primeNumbers.add(3);
primeNumbers.add(5);
System.out.println("HashSet: " + primeNumbers);
// retain common elements in the ArrayList
numbers.retainAll(primeNumbers);
System.out.println("Common Elements: " + numbers);
}
}
输出
ArrayList: [1, 2, 3] HashSet: [2, 3, 5] Common Elements: [2, 3]
在上面的示例中,我们创建了一个名为 numbers 的 ArrayList 和一个名为 primeNumbers 的 HashSet。请注意这一行:
numbers.retainAll(primeNumbers);
在这里,retainAll()
方法会从 numbers 中移除所有不在 primeNumbers 中的元素,只保留共同的元素。因此,2 和 3 会被保留在 ArrayList numbers 中。