Menu
Coddy logo textTech

Crear un Conjunto

Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 18 de 65.

Ahora que entiendes lo que es un Set, aprendamos cómo crear uno. En Dart, creas un Set usando llaves {} con los elementos separados por comas, de manera similar a como escribirías un conjunto matemático.

Set<String> colors = {'red', 'blue', 'green'};
print(colors);  // {red, blue, green}

Es importante no confundir esta sintaxis con la creación de un Map. Aunque ambos utilizan llaves, un Set contiene solo valores, mientras que un Map contiene pares clave-valor separados por dos puntos. Un Set vacío debe declararse explícitamente con un tipo para distinguirlo de un Map vacío.

Set<String> emptySet = <String>{};  // Conjunto vacío
Map<String, int> emptyMap = {};     // Mapa vacío

También puedes crear un Set con valores duplicados, pero recuerda que los duplicados se eliminarán automáticamente, dejando solo elementos únicos en la colección final.

challenge icon

Desafío

Fácil

Crea un programa que gestione un sistema de etiquetas de blog creando un Set de etiquetas únicas para una publicación de blog. Tu programa debe:

  1. Leer una entrada de cadena que represente el título de la publicación del blog
  2. Leer múltiples entradas de cadena que representen las etiquetas que se agregarán a la publicación (la entrada terminará cuando recibas "done")
  3. Crear un Set de cadenas para almacenar las etiquetas únicas
  4. Agregar cada etiqueta al Set (los duplicados se eliminarán automáticamente)
  5. Imprimir los resultados del etiquetado del blog en el formato exacto que se muestra a continuación

Por ejemplo, si el título del blog es "Introduction to Dart Programming" y las etiquetas son "programming", "dart", "tutorial", "programming", "beginner", tu programa debe mostrar:

Blog Post: Introduction to Dart Programming
Tags added: [programming, dart, tutorial, programming, beginner]
Unique tags: {programming, dart, tutorial, beginner}
Total unique tags: 4
Status: Blog post tagged successfully

Si el título del blog es "Web Development Tips" y las etiquetas son "web", "html", "css", "web", "html", "javascript", tu programa debe mostrar:

Blog Post: Web Development Tips
Tags added: [web, html, css, web, html, javascript]
Unique tags: {web, html, css, javascript}
Total unique tags: 4
Status: Blog post tagged successfully

Si el título del blog es "Getting Started" y las etiquetas son "guide", "basics", tu programa debe mostrar:

Blog Post: Getting Started
Tags added: [guide, basics]
Unique tags: {guide, basics}
Total unique tags: 2
Status: Blog post tagged successfully

Tu programa debe crear un Set utilizando la sintaxis de llaves {} y demostrar cómo los Sets manejan automáticamente la eliminación de duplicados. Almacena todas las etiquetas de entrada en una lista primero para mostrar lo que se ingresó originalmente, luego crea el Set para mostrar las etiquetas únicas. El Set debe mostrar su contenido en el formato estándar de Set con llaves.

Pruébalo tú mismo

import 'dart:io';

void main() {
  // Lee el título de la publicación del blog
  String? title = stdin.readLineSync();
  
  // Lee las etiquetas hasta que se ingrese "done"
  List<String> allTags = [];
  String? tag;
  while ((tag = stdin.readLineSync()) != "done") {
    if (tag != null) {
      allTags.add(tag);
    }
  }
  
  // TODO: Escribe tu código aquí
  // Crea un Set a partir de la lista de etiquetas para obtener etiquetas únicas
  // Calcula el número total de etiquetas únicas
  
  // Muestra los resultados
  print("Blog Post: $title");
  print("Tags added: $allTags");
  // Imprime las etiquetas únicas en formato Set
  // Imprime el recuento total de etiquetas únicas
  // Imprime el mensaje de estado
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo