English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il metodo retainAll() di ArrayList Java mantiene solo quegli elementi che esistono sia nell'ArrayList che nella collezione specificata.
E, tutti gli elementi non presenti nella collezione specificata vengono rimossi dall'arraylist.
La sintassi del metodo retainAll() è:
arraylist.retainAll(Collection c);
collection- Solo gli elementi presenti nella collezione vengono conservati nell'arraylist.
Se si elimina un elemento dall'arraylist, restituisce true
Se il tipo dell'elemento esistente nell'arraylist è specificatoCollezioneIl tipo dell'elemento non è compatibile, viene lanciata un'eccezione ClassCastException
Se l'arraylist contiene elementi null e specificatoCollezioneNon sono ammessi elementi null, viene lanciata NullPointerException
import java.util.ArrayList; class Main { public static void main(String[] args) { // crea ArrayList ArrayList<String> languages1 = new ArrayList<>(); // aggiungi elemento a ArrayList languages1.add("JavaScript"); languages1.add("Python"); languages1.add("Java"); System.out.println("ArrayList 1: " + languages1); //Crea un altro ArrayList ArrayList<String> languages2 = new ArrayList<>(); // aggiungi elemento a ArrayList languages2.add("English"); languages2.add("Java"); languages2.add("Python"); System.out.println("ArrayList 2: " + languages2); // conservare gli elementi comuni languages1.retainAll(languages2); System.out.println("Elementi comuni: " + languages1); } }
Risultato di output
ArrayList 1: [JavaScript, Python, Java] ArrayList 2: [English, Java, Python] Elementi comuni: [Python, Java]
Nell'esempio precedente, abbiamo creato due ArrayList chiamate languages1 e languages2. Nota questa riga:
languages1.retainAll(languages2);
In questo esempio, passiamo l'arraylist languages2 come parametro al metodo retainAll(). Questo metodo elimina tutti gli elementi non presenti in languages2 da languages1. Pertanto, si conservano solo gli elementi comuni.
import java.util.ArrayList; import java.util.HashSet; class Main { public static void main(String[] args) { // crea ArrayList ArrayList<Integer> numbers = new ArrayList<>(); // aggiungi elemento a ArrayList numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("ArrayList: " + numbers); // crea un HashSet HashSet<Integer> primeNumbers = new HashSet<>(); // aggiungi elemento a HashSet primeNumbers.add(2); primeNumbers.add(3); primeNumbers.add(5); System.out.println("HashSet: " + primeNumbers); //Rimetti gli elementi comuni nell'ArrayList numbers.retainAll(primeNumbers); System.out.println("Elementi comuni: " + numbers); } }
Risultato di output
ArrayList: [1, 2, 3] HashSet: [2, 3, 5] Elementi comuni: [2, 3]
Nell'esempio sopra, abbiamo creato un arraylist chiamato numbers e un set di hash chiamato primeNumbers. Nota questa riga,
numbers.retainAll(primeNumbers);
In questo caso, il metodo retainAll() eliminerà tutti quegli elementi non presenti in primeNumbers e terrà soltanto gli elementi comuni. Quindi,2e3Rimasta nell'arraylist numbers.