Ce face Set.contains
contains(x) este operația pentru care se folosesc de obicei mulțimile: la HashSet durează aproape la fel de puțin indiferent câte elemente are mulțimea, la TreeSet timp logaritmic. La o listă, contains verifică elementele pe rând, deci e mult mai lent pentru date mari.
containsAll(c) returnează true dacă fiecare element din c se află în mulțime, adică c este o submulțime. Ambele folosesc equals/hashCode (la TreeSet, comparatorul).
Parametri
| Parametru | Descriere |
|---|---|
o |
Elementul căutat. |
c |
Colecția ale cărei elemente trebuie să fie toate prezente. |
Ce returnează
true sau false.
Exemple
Exemplul 1: Este zi liberă?
import java.time.LocalDate;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Set<LocalDate> libere = Set.of(
LocalDate.of(2026, 12, 1), LocalDate.of(2026, 12, 25), LocalDate.of(2026, 12, 26));
for (LocalDate zi : new LocalDate[] {LocalDate.of(2026, 12, 1), LocalDate.of(2026, 12, 2)}) {
System.out.println(zi + (libere.contains(zi) ? ": zi liberă" : ": zi lucrătoare"));
}
}
}
Rezultat
2026-12-01: zi liberă
2026-12-02: zi lucrătoare
Exemplul 2: Are candidatul toate competențele?
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Set<String> ana = Set.of("Java", "SQL", "Git", "engleză");
List<String> cerute = List.of("Java", "Git");
List<String> cerute2 = List.of("Java", "Docker");
System.out.println("Post 1: " + ana.containsAll(cerute));
System.out.println("Post 2: " + ana.containsAll(cerute2));
System.out.println("Știe SQL? " + ana.contains("SQL"));
System.out.println("Știe sql? " + ana.contains("sql"));
}
}
Rezultat
Post 1: true
Post 2: false
Știe SQL? true
Știe sql? false
Greșeli frecvente
- Cauți un text cu altă scriere (majuscule, spații).
containsfoloseșteequals, deci „SQL” și „sql” sunt diferite. - Folosești
list.containsîntr-o buclă pe date mari. Copiază mai întâi lista într-unHashSet.
Comenzi înrudite
Set: Interfața pentru mulțimi: colecții fără duplicate, în care întrebi rapid dacă un element există.Set.add: Adaugă un element în mulțime doar dacă nu există deja; returnează true dacă a fost adăugat. addAll face reuniunea.Collection.retainAll: retainAll păstrează doar elementele care apar și în altă colecție; containsAll verifică dacă le conține pe toate.List.contains: Verifică dacă lista conține o valoare (contains) sau toate valorile altei colecții (containsAll).Map.containsKey: containsKey verifică rapid dacă o cheie există în map; containsValue caută o valoare, mai lent, printre toate perechile.