Metoda Java ArrayList retainAll () zachowuje tylko te elementy w arraylist, które są również obecne w określonej kolekcji.
Wszystkie elementy, których nie ma w określonej kolekcji, są usuwane z listy arraylisty.
Składnia retainAll()
metody to:
arraylist.retainAll(Collection c);
Tutaj arraylist jest obiektem ArrayList
klasy.
retainAll () Parametry
retainAll()
Sposób przyjmuje jeden parametr.
- kolekcja - tylko te elementy obecne w kolekcji są zachowywane na liście arraylistycznej.
retainAll () Wartość zwracana
- zwraca,
true
jeśli elementy zostaną usunięte z listy arraylisty - zgłasza,
ClassCastException
jeśli klasa elementów obecnych w arraylist jest niezgodna z klasą elementów w określonej kolekcji - zgłasza,
NullPointerException
jeśli arraylist zawiera element o wartości null, a określona kolekcja nie zezwala na elementy o wartości null
Przykład 1: Java ArrayList retainAll ()
import java.util.ArrayList; class Main ( public static void main(String() args) ( // create an ArrayList ArrayList 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 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); ) )
Wynik
ArrayList 1: (JavaScript, Python, Java) ArrayList 2: (English, Java, Python) Common Elements: (Python, Java)
W powyższym przykładzie utworzyliśmy dwie listy arraylistów o nazwach języki1 i języki2. Zwróć uwagę na linię,
languages1.retainAll(languages2);
Tutaj przekazujemy arraylist languages2 jako argument do retainAll()
metody. Metoda usuwa wszystkie elementy z języków1, których nie ma w językach2. Dlatego zachowywane są tylko wspólne elementy.
Przykład 2: Pokaż wspólne elementy między ArrayList a HashSet
import java.util.ArrayList; import java.util.HashSet; class Main ( public static void main(String() args) ( // create an ArrayList ArrayList 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 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); ) )
Wynik
ArrayList: (1, 2, 3) HashSet: (2, 3, 5) Elementy wspólne: (2, 3)
W powyższym przykładzie utworzyliśmy listę arraylistyczną o nazwie numbers i zestaw hashset o nazwie primeNumbers. Zwróć uwagę na linię,
numbers.retainAll(primeNumbers);
Tutaj retainAll()
metoda usuwa wszystkie te elementy z liczb, które nie są obecne w liczbach pierwszych. I zachowuje tylko wspólne elementy. Stąd 2 i 3 są zachowywane w liczbach arraylist.