English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Метод retainAll() Java ArrayList сохраняет только те элементы, которые существуют как в ArrayList, так и в указанном наборе.
Кроме того, все элементы, не出现的 в указанном наборе, удаляются из 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) { // Создание ArrayList ArrayList<String> languages1 = new ArrayList<>(); // Добавление элементов в ArrayList languages1.add("JavaScript"); languages1.add("Python"); languages1.add("Java"); System.out.println("ArrayList 1: " + languages1); //Создание другого 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); } }
Результат вывода
ArrayList 1: [JavaScript, Python, Java] ArrayList 2: [English, Java, Python] Общие элементы: [Python, Java]
В предыдущем примере мы создали два ArrayList под именами languages1 и languages2. Обратите внимание на эту строку:
languages1.retainAll(languages2);
Здесь мы передаем ArrayList languages2 в качестве параметра методу retainAll(). Этот метод удаляет из languages1 все элементы, которые не出现的 в languages2. Таким образом, мы сохраняем только общие элементы.
import java.util.ArrayList; import java.util.HashSet; class Main { public static void main(String[] args) { // Создание ArrayList ArrayList<Integer> numbers = new ArrayList<>(); // Добавление элементов в 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, и сохранит только общие элементы. Таким образом,2и3сохранено в arraylist numbers.