Ce face Set.contains
contains pe un set nu parcurge toate elementele, ca la o listă, ci caută direct după codul hash. De aceea, pentru verificări repetate într-o colecție mare, un set este alegerea bună.
containsAll(colectie) returnează true doar dacă fiecare element din colecție se află în set.
Parametri
| Parametru | Descriere |
|---|---|
value |
Elementul căutat. |
other |
Elementele care trebuie să fie toate în set. |
Ce returnează
true sau false.
Exemple
Exemplul 1: Cuvinte interzise
void main() {
const interzise = {'prost', 'urât'};
const mesaj = 'Ce film urât am văzut azi';
final cuvinte = mesaj.toLowerCase().split(' ');
final gasite = cuvinte.where(interzise.contains).toList();
print(gasite.isEmpty ? 'Mesaj curat' : 'Cuvinte interzise: $gasite');
}
Rezultat
Cuvinte interzise: [urât]
Exemplul 2: Are candidatul toate competențele?
void main() {
final cerute = ['Dart', 'Git', 'SQL'];
final ana = {'Dart', 'Flutter', 'Git', 'SQL'};
final mihai = {'Dart', 'Git'};
print('Ana: ${ana.containsAll(cerute)}');
print('Mihai: ${mihai.containsAll(cerute)}');
print('Mihai știe Git: ${mihai.contains('Git')}');
}
Rezultat
Ana: true
Mihai: false
Mihai știe Git: true
Greșeli frecvente
- Pui într-un set obiecte ale unei clase proprii fără
==șihashCode.containsva găsi doar exact același obiect, nu unul cu aceleași date.
Comenzi înrudite
Set.lookup: Returnează elementul din set egal cu valoarea dată (obiectul păstrat în set), sau null dacă nu există.Iterable.contains: Verifică dacă un element egal (==) cu valoarea dată există în colecție.Map.containsKey: containsKey verifică dacă o cheie există în map, iar containsValue dacă o valoare apare la vreo cheie.Set.identity: Set care compară elementele după identitate (același obiect în memorie), nu după operatorul ==.