Метод Java ArrayList keepAll () сохраняет только те элементы в arrayylist, которые также присутствуют в указанной коллекции.
И все те элементы, которых нет в указанной коллекции, удаляются из Arraylist.
Синтаксис retainAll()
метода:
arraylist.retainAll(Collection c);
Здесь arrayylist - это объект ArrayList
класса.
Параметры keepAll ()
retainAll()
Метод принимает один параметр.
- collection - только те элементы, которые присутствуют в коллекции, сохраняются в arraylist.
keepAll () Возвращаемое значение
- возвращается,
true
если элементы удалены из массива - выбрасывает,
ClassCastException
если класс элементов, представленных в arraylist, несовместим с классом элементов в указанной коллекции - выбрасывает,
NullPointerException
если arrayylist содержит нулевой элемент, а указанная коллекция не допускает нулевые элементы
Пример 1: Java ArrayList keepAll ()
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); ) )
Вывод
ArrayList 1: (JavaScript, Python, Java) ArrayList 2: (английский, Java, Python) Общие элементы: (Python, Java)
В приведенном выше примере мы создали два массива с именами languages1 и languages2. Обратите внимание на линию,
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 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); ) )
Вывод
ArrayList: (1, 2, 3) HashSet: (2, 3, 5) Общие элементы: (2, 3)
В приведенном выше примере мы создали массив с именем numbers и хэш-набор с именем primeNumbers. Обратите внимание на линию,
numbers.retainAll(primeNumbers);
Здесь retainAll()
метод удаляет все те элементы из чисел, которых нет в primeNumbers. И сохраняет только общие элементы. Следовательно, 2 и 3 сохраняются в номерах arraylist.