Ce face Set.add
set.add(x) pune x în mulțime și returnează true. Dacă un element egal există deja, mulțimea rămâne la fel și metoda returnează false. Rezultatul este deci și un test „a mai fost?” făcut dintr-un singur pas.
set.addAll(colectie) adaugă toate elementele noi din altă colecție: este reuniunea a două mulțimi. Returnează true dacă a intrat cel puțin un element nou.
Parametri
| Parametru | Descriere |
|---|---|
e |
Elementul de adăugat. |
c |
Colecția ale cărei elemente se adaugă. |
Ce returnează
true dacă mulțimea s-a modificat.
Exemple
Exemplul 1: Primul vot contează
import java.util.LinkedHashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Set<String> auVotat = new LinkedHashSet<>();
String[] voturi = {"Ana", "Mihai", "Ana", "Ioana", "Mihai"};
for (String v : voturi) {
System.out.println(v + (auVotat.add(v) ? ": vot înregistrat" : ": a votat deja"));
}
System.out.println("Au votat: " + auVotat);
}
}
Rezultat
Ana: vot înregistrat
Mihai: vot înregistrat
Ana: a votat deja
Ioana: vot înregistrat
Mihai: a votat deja
Au votat: [Ana, Mihai, Ioana]
Exemplul 2: Reuniunea a două mulțimi
import java.util.List;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<String> grupaA = new TreeSet<>(List.of("Ana", "Radu", "Elena"));
List<String> grupaB = List.of("Elena", "Mihai");
TreeSet<String> toti = new TreeSet<>(grupaA);
System.out.println("S-a schimbat: " + toti.addAll(grupaB));
System.out.println("Reuniune: " + toti);
System.out.println("Din nou: " + toti.addAll(grupaB));
}
}
Rezultat
S-a schimbat: true
Reuniune: [Ana, Elena, Mihai, Radu]
Din nou: false
Greșeli frecvente
- Te aștepți ca
addsă înlocuiască elementul vechi cu cel nou. Dacă există deja un element egal, cel vechi rămâne. - Adaugi într-un
Set.of(...). Mulțimea este nemodificabilă și apareUnsupportedOperationException.
Comenzi înrudite
Set: Interfața pentru mulțimi: colecții fără duplicate, în care întrebi rapid dacă un element există.Set.contains: contains verifică rapid dacă un element este în mulțime; containsAll verifică dacă sunt toate elementele altei colecții.Set.remove: remove scoate un element; removeAll face diferența a două mulțimi, retainAll intersecția. Toate spun dacă s-a schimbat ceva.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ă.