Els conjunts (sets) són una col·lecció no ordenada d'elements únics. A diferència de les llistes, els conjunts no permeten elements duplicats i no mantenen cap ordre específic dels elements. Els conjunts són útils quan necessitem garantir que no hi hagi duplicats en una col·lecció de dades.

Conceptes Clau

  • Conjunt: Una col·lecció no ordenada d'elements únics.
  • Element únic: Cada element en un conjunt és únic; no hi pot haver duplicats.
  • No ordenat: Els elements en un conjunt no tenen un ordre específic.

Creació de Conjunts

Conjunt Buit

void main() {
  Set<int> mySet = {};
  print(mySet); // Output: {}
}

Conjunt amb Elements

void main() {
  Set<int> mySet = {1, 2, 3, 4, 5};
  print(mySet); // Output: {1, 2, 3, 4, 5}
}

Conjunt des d'una Llista

void main() {
  List<int> myList = [1, 2, 2, 3, 4, 4, 5];
  Set<int> mySet = Set.from(myList);
  print(mySet); // Output: {1, 2, 3, 4, 5}
}

Operacions amb Conjunts

Afegir Elements

void main() {
  Set<int> mySet = {1, 2, 3};
  mySet.add(4);
  print(mySet); // Output: {1, 2, 3, 4}
}

Eliminar Elements

void main() {
  Set<int> mySet = {1, 2, 3, 4};
  mySet.remove(3);
  print(mySet); // Output: {1, 2, 4}
}

Verificar Existència d'un Element

void main() {
  Set<int> mySet = {1, 2, 3, 4};
  print(mySet.contains(3)); // Output: true
  print(mySet.contains(5)); // Output: false
}

Unió de Conjunts

void main() {
  Set<int> setA = {1, 2, 3};
  Set<int> setB = {3, 4, 5};
  Set<int> unionSet = setA.union(setB);
  print(unionSet); // Output: {1, 2, 3, 4, 5}
}

Intersecció de Conjunts

void main() {
  Set<int> setA = {1, 2, 3};
  Set<int> setB = {3, 4, 5};
  Set<int> intersectionSet = setA.intersection(setB);
  print(intersectionSet); // Output: {3}
}

Diferència de Conjunts

void main() {
  Set<int> setA = {1, 2, 3};
  Set<int> setB = {3, 4, 5};
  Set<int> differenceSet = setA.difference(setB);
  print(differenceSet); // Output: {1, 2}
}

Exercicis Pràctics

Exercici 1: Crear un Conjunt i Afegir Elements

Descripció: Crea un conjunt buit i afegeix-hi els números del 1 al 5. Després, imprimeix el conjunt.

Solució:

void main() {
  Set<int> mySet = {};
  for (int i = 1; i <= 5; i++) {
    mySet.add(i);
  }
  print(mySet); // Output: {1, 2, 3, 4, 5}
}

Exercici 2: Eliminar Elements d'un Conjunt

Descripció: Crea un conjunt amb els números del 1 al 5. Elimina el número 3 i imprimeix el conjunt resultant.

Solució:

void main() {
  Set<int> mySet = {1, 2, 3, 4, 5};
  mySet.remove(3);
  print(mySet); // Output: {1, 2, 4, 5}
}

Exercici 3: Unió i Intersecció de Conjunts

Descripció: Crea dos conjunts, setA amb els números del 1 al 3 i setB amb els números del 3 al 5. Calcula la unió i la intersecció dels dos conjunts i imprimeix els resultats.

Solució:

void main() {
  Set<int> setA = {1, 2, 3};
  Set<int> setB = {3, 4, 5};
  
  Set<int> unionSet = setA.union(setB);
  Set<int> intersectionSet = setA.intersection(setB);
  
  print('Unió: $unionSet'); // Output: Unió: {1, 2, 3, 4, 5}
  print('Intersecció: $intersectionSet'); // Output: Intersecció: {3}
}

Errors Comuns i Consells

  • Duplicats: Recorda que els conjunts no permeten elements duplicats. Si intentes afegir un element que ja existeix, no es produirà cap error, però l'element no es duplicarà.
  • Ordre: No confiïs en l'ordre dels elements en un conjunt. Si necessites mantenir un ordre específic, considera utilitzar una llista en lloc d'un conjunt.

Conclusió

Els conjunts són una eina poderosa per gestionar col·leccions d'elements únics en Dart. Són especialment útils quan necessitem garantir que no hi hagi duplicats i quan les operacions d'unió, intersecció i diferència són necessàries. Amb els conceptes i exemples proporcionats, hauríeu de tenir una bona comprensió de com utilitzar els conjunts en els vostres projectes de Dart.

© Copyright 2024. Tots els drets reservats