Метод retainAll() класса ArrayList в Java
Метод retainAll() используется для сохранения в arraylist элементов, которые также существуют в указанной коллекции, то есть для удаления тех элементов, которых нет в указанной коллекции.
Синтаксис метода retainAll():
arraylist.retainAll(Collection c);
Примечание:arraylist — это объект класса ArrayList.
Описание параметра:
- collection - параметр коллекции
Возвращаемое значение
Возвращает true, если элементы удалены из arraylist.
Выбрасывает ClassCastException, если элементы, присутствующие в классе arraylist, несовместимы с элементами в указанном классе collection.
Выбрасывает NullPointerException, если arraylist содержит null-элементы и указанная collection не допускает null-элементы.
Пример
Оставить элементы в указанной collection:
Пример
class Main {
public static void main(String[] args){
// Создать динамический массив
ArrayList<String> sites = new ArrayList<>();
sites.add("Google");
sites.add("Example");
sites.add("Taobao");
System.out.println("ArrayList 1: " + sites);
// Создать другой динамический массив
ArrayList<String> sites2 = new ArrayList<>();
// Добавить элементы в динамический массив
sites2.add("Wiki");
sites2.add("Example");
sites2.add("Google");
System.out.println("ArrayList 2: " + sites2);
// Оставить элементы
sites.retainAll(sites2);
System.out.println("Сохранённые элементы: " + sites);
}
}
Запуск вышеуказанной программы выводит результат:
ArrayList 1: [Google, Example, Taobao] ArrayList 2: [Wiki, Example, Google] 保留的元素: [Google, Example]
В приведённом выше примере мы создали динамические массивы с именами sites и sites2.
Обратите внимание на эту строку:
sites.retainAll(sites2);
В примере мы передали массив sites2 в качестве параметра методу retainAll(). Этот метод удаляет из sites элементы, которых нет в sites2.
Общие элементы ArrayList и HashSet:
Пример
import java.util.HashSet;
class Main {
public static void main(String[] args) {
// Создать массив
ArrayList<Integer> numbers = new ArrayList<>();
// Добавить элементы в массив
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println("ArrayList: " + numbers);
// Создать объект 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);
}
}
Запуск вышеуказанной программы выводит результат:
ArrayList: [1, 2, 3] HashSet: [2, 3, 5] 共有元素: [2, 3]
В приведенном выше примере мы создали ArrayList с именем numbers и HashSet с именем primeNumbers.
Обратите внимание на эту строку:
numbers.retainAll(primeNumbers);
В коде метод retainAll() удаляет все элементы из динамического массива numbers, которых нет в primeNumbers.
Другие расширения
Java ArrayList