Collections.addAll în Java

Adaugă dintr-o dată mai multe valori (sau un array) într-o colecție existentă. Returnează true dacă s-a schimbat.

Sintaxă
@SafeVarargs
static <T> boolean addAll(Collection<? super T> c, T... elements)

Ce face Collections.addAll

Collections.addAll(colectie, a, b, c) adaugă valorile date, în ordine, în colecție. Poți da valorile una câte una sau direct un array. Este mai scurt decât trei apeluri add și mai rapid decât colectie.addAll(Arrays.asList(...)).

Funcționează pe orice colecție modificabilă: listă, mulțime, coadă. Rezultatul este true dacă a fost adăugat cel puțin un element (la o mulțime, duplicatele nu se adaugă).

Parametri

Parametru Descriere
c Colecția în care se adaugă.
elements Valorile sau un array cu valori.

Ce returnează

true dacă colecția s-a modificat.

Exemple

Exemplul 1: Completarea unei liste și a unei mulțimi

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.TreeSet;

public class Main {
    public static void main(String[] args) {
        List<String> zile = new ArrayList<>();
        Collections.addAll(zile, "luni", "marți", "miercuri");
        System.out.println(zile);

        TreeSet<Integer> note = new TreeSet<>(List.of(9, 10));
        System.out.println(Collections.addAll(note, 10, 9) + " " + note);
        System.out.println(Collections.addAll(note, 7, 10) + " " + note);
    }
}

Rezultat

[luni, marți, miercuri]
false [9, 10]
true [7, 9, 10]

Exemplul 2: Dintr-un array într-o coadă

import java.util.ArrayDeque;
import java.util.Collections;
import java.util.Deque;

public class Main {
    public static void main(String[] args) {
        String[] sosiri = "Ana,Radu,Elena".split(",");
        Deque<String> coada = new ArrayDeque<>();
        Collections.addAll(coada, sosiri);
        System.out.println("Primul la rând: " + coada.peekFirst() + ", toți: " + coada);
    }
}

Rezultat

Primul la rând: Ana, toți: [Ana, Radu, Elena]

Greșeli frecvente

  • Apelezi pe o listă din List.of sau Arrays.asList. Nu se poate mări; apare UnsupportedOperationException.
  • Încurci ordinea argumentelor: întâi colecția, apoi valorile.

Comenzi înrudite

  • Collection.addAll: Adaugă în colecție toate elementele altei colecții. Returnează true dacă s-a schimbat ceva.
  • List.add: Adaugă un element (sau toate elementele altei colecții) la sfârșitul listei ori la o poziție dată.
  • Arrays.asList: Returnează o listă de mărime fixă legată de un array: poți citi și schimba elemente cu set, dar nu poți adăuga sau șterge.
  • Collections: Clasă cu metode statice gata făcute pentru colecții: sortare, amestecare, minim și maxim, numărare, liste nemodificabile.