Java ArrayList retainAll()方法只保留既存在ArrayList中,也存在于指定集合中的那些元素。
并且,沒有出現(xiàn)在指定集合中的所有元素都從arraylist中刪除。
retainAll()方法的語法為:
arraylist.retainAll(Collection c);
collection- 只有存在于集合中的元素才保留在arraylist中。
如果從arraylist中刪除元素,則返回true
如果arraylist中存在的元素類與指定集合中的元素類不兼容,則拋出ClassCastException異常
如果arraylist包含null元素,且指定的集合不允許null元素,則拋出NullPointerException
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
//創(chuàng)建 ArrayList
ArrayList<String> languages1 = new ArrayList<>();
//添加元素到 ArrayList
languages1.add("JavaScript");
languages1.add("Python");
languages1.add("Java");
System.out.println("ArrayList 1: " + languages1);
//創(chuàng)建另一個 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);
}
}輸出結(jié)果
ArrayList 1: [JavaScript, Python, Java] ArrayList 2: [English, Java, Python] 公共元素: [Python, Java]
在上面的示例中,我們創(chuàng)建了兩個名為languages1和languages2的ArrayList。注意這一行,
languages1.retainAll(languages2);
在這里,我們將arraylist languages2作為參數(shù)傳遞給retainAll()方法。該方法從languages1中刪除沒有出現(xiàn)在languages2中的所有元素。因此,只保留公共元素。
import java.util.ArrayList;
import java.util.HashSet;
class Main {
public static void main(String[] args) {
//創(chuàng)建 ArrayList
ArrayList<Integer> numbers = new ArrayList<>();
//添加元素到 ArrayList
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println("ArrayList: " + numbers);
//創(chuàng)建一個 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);
}
}輸出結(jié)果
ArrayList: [1, 2, 3] HashSet: [2, 3, 5] 公共元素: [2, 3]
在上面的示例中,我們創(chuàng)建了一個名為numbers的arraylist和一個名為primeNumbers的哈希集合。注意這一行,
numbers.retainAll(primeNumbers);
在此,retainAll()方法會刪除numbers中,不存在于primeNumbers中的所有那些元素。并且,僅保留公共元素。因此,2和3保留在arraylist numbers中。