English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
The Java ArrayList retainAll() method retains those elements that exist in both the ArrayList and the specified set.
In addition, all elements that do not appear in the specified set are deleted from the arraylist.
The syntax of the retainAll() method is:
arraylist.retainAll(Collection c);
collection- Only elements existing in the set are retained in the arraylist.
Se for removido um elemento do arraylist, retorna true
Se o tipo do elemento existente no arraylist não for compatível com o especificadoconjuntodo tipo do elemento existente no arraylist não for compatível com o especificado
Se o arraylist contiver elementos null e o tipoconjuntoNão permite elementos null, lançando NullPointerException
import java.util.ArrayList; class Main { public static void main(String[] args) { //Criar ArrayList ArrayList<String> languages1 = new ArrayList<>(); //Adicionar elementos ao ArrayList languages1.add("JavaScript"); languages1.add("Python"); languages1.add("Java"); System.out.println("ArrayList 1: " + languages1); //Criar outra ArrayList ArrayList<String> languages2 = new ArrayList<>(); //Adicionar elementos ao ArrayList languages2.add("English"); languages2.add("Java"); languages2.add("Python"); System.out.println("ArrayList 2: " + languages2); //Mantendo elementos comuns languages1.retainAll(languages2); System.out.println("Elementos comuns: " + languages1); } }
Resultados de saída
ArrayList 1: [JavaScript, Python, Java] ArrayList 2: [English, Java, Python] Elementos comuns: [Python, Java]
No exemplo acima, criamos duas arraylists chamadas languages1e languages2do ArrayList. Note esta linha,
languages1.retainAll(languages2);
Aqui, vamos usar a arraylist languages2passados como parâmetro para o método retainAll(). Este método remove1remover elementos que não aparecem em languages2todos os elementos. Portanto, apenas mantemos os elementos comuns.
import java.util.ArrayList; import java.util.HashSet; class Main { public static void main(String[] args) { //Criar ArrayList ArrayList<Integer> numbers = new ArrayList<>(); //Adicionar elementos ao ArrayList numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("ArrayList: " + numbers); //Criar um HashSet HashSet<Integer> primeNumbers = new HashSet<>(); //Adicionar elementos ao HashSet primeNumbers.add(2); primeNumbers.add(3); primeNumbers.add(5); System.out.println("HashSet: " + primeNumbers); //Manter elementos comuns na ArrayList numbers.retainAll(primeNumbers); System.out.println("Elementos comuns: " + numbers); } }
Resultados de saída
ArrayList: [1, 2, 3] HashSet: [2, 3, 5] Elementos comuns: [2, 3]
No exemplo acima, criamos uma lista de array chamada numbers e um conjunto de hashes chamado primeNumbers. Observe esta linha,
numbers.retainAll(primeNumbers);
Aqui, o método retainAll() removerá todos os elementos que não existem no primeNumbers e manterá apenas os elementos comuns. Portanto,2e3Manter no arraylist numbers.