Introducción a los Conjuntos en Dart

En Dart, un conjunto (Set) es una colección de elementos únicos, es decir, no permite duplicados. Los conjuntos son útiles cuando necesitas asegurarte de que una colección no contenga elementos repetidos. Dart proporciona la clase Set para trabajar con conjuntos.

Características de los Conjuntos

  • Elementos Únicos: No permite elementos duplicados.
  • Desordenados: No mantiene el orden de inserción de los elementos.
  • Operaciones de Conjunto: Soporta operaciones como unión, intersección y diferencia.

Creación de Conjuntos

Puedes crear conjuntos de varias maneras en Dart:

Usando Literales de Conjunto

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

Usando el Constructor de la Clase Set

void main() {
  Set<String> frutas = Set();
  frutas.add('Manzana');
  frutas.add('Banana');
  frutas.add('Naranja');
  print(frutas); // {Manzana, Banana, Naranja}
}

Convertir una Lista a un Conjunto

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

Operaciones Básicas con Conjuntos

Añadir Elementos

void main() {
  Set<String> colores = {'Rojo', 'Verde'};
  colores.add('Azul');
  print(colores); // {Rojo, Verde, Azul}
}

Eliminar Elementos

void main() {
  Set<String> colores = {'Rojo', 'Verde', 'Azul'};
  colores.remove('Verde');
  print(colores); // {Rojo, Azul}
}

Verificar la Existencia de un Elemento

void main() {
  Set<String> colores = {'Rojo', 'Verde', 'Azul'};
  print(colores.contains('Verde')); // true
  print(colores.contains('Amarillo')); // false
}

Tamaño del Conjunto

void main() {
  Set<String> colores = {'Rojo', 'Verde', 'Azul'};
  print(colores.length); // 3
}

Operaciones de Conjunto

Unión

La unión de dos conjuntos contiene todos los elementos de ambos conjuntos.

void main() {
  Set<int> conjuntoA = {1, 2, 3};
  Set<int> conjuntoB = {3, 4, 5};
  Set<int> union = conjuntoA.union(conjuntoB);
  print(union); // {1, 2, 3, 4, 5}
}

Intersección

La intersección de dos conjuntos contiene solo los elementos que están en ambos conjuntos.

void main() {
  Set<int> conjuntoA = {1, 2, 3};
  Set<int> conjuntoB = {3, 4, 5};
  Set<int> interseccion = conjuntoA.intersection(conjuntoB);
  print(interseccion); // {3}
}

Diferencia

La diferencia de dos conjuntos contiene los elementos que están en el primer conjunto pero no en el segundo.

void main() {
  Set<int> conjuntoA = {1, 2, 3};
  Set<int> conjuntoB = {3, 4, 5};
  Set<int> diferencia = conjuntoA.difference(conjuntoB);
  print(diferencia); // {1, 2}
}

Ejercicios Prácticos

Ejercicio 1: Crear y Manipular un Conjunto

Instrucciones: Crea un conjunto de nombres de animales. Añade algunos nombres, elimina uno y verifica si un nombre específico está en el conjunto.

void main() {
  // Crear un conjunto de nombres de animales
  Set<String> animales = {'Perro', 'Gato', 'Elefante'};
  
  // Añadir nombres
  animales.add('León');
  animales.add('Tigre');
  
  // Eliminar un nombre
  animales.remove('Gato');
  
  // Verificar si un nombre específico está en el conjunto
  bool contieneLeon = animales.contains('León');
  bool contieneGato = animales.contains('Gato');
  
  // Imprimir resultados
  print(animales); // {Perro, Elefante, León, Tigre}
  print(contieneLeon); // true
  print(contieneGato); // false
}

Ejercicio 2: Operaciones de Conjunto

Instrucciones: Dado dos conjuntos de números, realiza las operaciones de unión, intersección y diferencia.

void main() {
  // Crear dos conjuntos de números
  Set<int> conjuntoA = {1, 2, 3, 4};
  Set<int> conjuntoB = {3, 4, 5, 6};
  
  // Unión
  Set<int> union = conjuntoA.union(conjuntoB);
  
  // Intersección
  Set<int> interseccion = conjuntoA.intersection(conjuntoB);
  
  // Diferencia
  Set<int> diferencia = conjuntoA.difference(conjuntoB);
  
  // Imprimir resultados
  print('Unión: $union'); // Unión: {1, 2, 3, 4, 5, 6}
  print('Intersección: $interseccion'); // Intersección: {3, 4}
  print('Diferencia: $diferencia'); // Diferencia: {1, 2}
}

Conclusión

En esta sección, hemos aprendido sobre los conjuntos en Dart, cómo crearlos y manipularlos, y cómo realizar operaciones de conjunto como unión, intersección y diferencia. Los conjuntos son una herramienta poderosa cuando necesitas trabajar con colecciones de elementos únicos. En el próximo módulo, exploraremos los mapas en Dart, otra estructura de datos fundamental.

© Copyright 2024. Todos los derechos reservados