Ce face Collection.addAll
a.addAll(b) adaugă în a fiecare element din b, în ordinea în care îl dă b. Colecția b rămâne neschimbată.
Efectul depinde de tipul lui a: o listă primește toate elementele, inclusiv duplicatele; o mulțime le ignoră pe cele pe care le are deja. De aceea rezultatul (true/false) spune dacă a chiar s-a modificat.
Colecțiile pot fi de tipuri diferite: poți adăuga elementele unei mulțimi într-o listă sau ale unei liste într-o coadă.
Parametri
| Parametru | Descriere |
|---|---|
c |
Colecția din care se copiază elementele. |
Ce returnează
true dacă colecția s-a modificat.
Exemple
Exemplul 1: Unirea a două liste de invitați
import java.util.ArrayList;
import java.util.List;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
List<String> mire = List.of("Ana", "Mihai", "Ioana");
List<String> mireasa = List.of("Ioana", "Radu");
List<String> toti = new ArrayList<>(mire);
toti.addAll(mireasa);
System.out.println("Listă: " + toti);
TreeSet<String> unici = new TreeSet<>(mire);
unici.addAll(mireasa);
System.out.println("Mulțime: " + unici);
}
}
Rezultat
Listă: [Ana, Mihai, Ioana, Ioana, Radu]
Mulțime: [Ana, Ioana, Mihai, Radu]
Exemplul 2: Rezultatul spune dacă s-a schimbat ceva
import java.util.List;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<String> orase = new TreeSet<>(List.of("Iași", "Cluj"));
System.out.println(orase.addAll(List.of("Cluj", "Iași")) + " " + orase);
System.out.println(orase.addAll(List.of("Cluj", "Arad")) + " " + orase);
}
}
Rezultat
false [Cluj, Iași]
true [Arad, Cluj, Iași]
Greșeli frecvente
- Adaugi o colecție în ea însăși (
lista.addAll(lista)) sau într-o colecție nemodificabilă. Al doilea caz aruncăUnsupportedOperationException. - Crezi că
addAllreturnează colecția nouă. Returnează unboolean; colecția inițială este cea modificată.
Comenzi înrudite
List.add: Adaugă un element (sau toate elementele altei colecții) la sfârșitul listei ori la o poziție dată.Set.add: Adaugă un element în mulțime doar dacă nu există deja; returnează true dacă a fost adăugat. addAll face reuniunea.Collections.addAll: Adaugă dintr-o dată mai multe valori (sau un array) într-o colecție existentă. Returnează true dacă s-a schimbat.Collection.retainAll: retainAll păstrează doar elementele care apar și în altă colecție; containsAll verifică dacă le conține pe toate.