并且,所有不存在于指定集合中的元素都将从数组列表中删除。
retainAll()
方法的语法是:
arraylist.retainAll(Collection c);
这里,
arraylist 是
ArrayList
类的对象。
retainAll() 参数
retainAll()
方法接受一个参数。
retainAll() 返回值
如果元素从数组列表中移除,则返回true
抛出 ClassCastException
如果 arraylist 中的元素类与指定的集合 中的元素类不兼容
如果数组列表包含空元素并且指定的集合不允许空元素,则抛出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 的数组列表。注意这一行,
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) { // 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 的数组列表和一个名为
primeNumbers 的哈希集。注意这一行,
numbers.retainAll(primeNumbers);
此处,
retainAll()
方法从
numbers 中删除了
primeNumbers 中不存在的所有元素。并且,只保留公共元素。因此,2 和 3 保留在数组列表
numbers 中。