Creare un insieme
Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 18 di 65.
Ora che hai capito cos'è un Set, impariamo a crearne uno. In Dart, crei un Set usando le parentesi graffe {} con gli elementi separati da virgole, come potresti scrivere un insieme matematico.
Set<String> colors = {'red', 'blue', 'green'};
print(colors); // {red, blue, green}È importante non confondere questa sintassi con la creazione di una Map. Sebbene entrambe usino le parentesi graffe, un Set contiene solo valori, mentre una Map contiene coppie chiave-valore separate da due punti. Un Set vuoto deve essere dichiarato esplicitamente con un tipo per distinguerlo da una Map vuota.
Set<String> emptySet = <String>{}; // Set vuoto
Map<String, int> emptyMap = {}; // Map vuotaPuoi anche creare un Set con valori duplicati, ma ricorda che i duplicati verranno rimossi automaticamente, lasciando solo elementi univoci nella raccolta finale.
Sfida
FacileCrea un programma che gestisca un sistema di tag per un blog creando un Set di tag unici per un post del blog. Il programma deve:
- Leggere una stringa in input che rappresenta il titolo del post del blog
- Leggere più stringhe in input che rappresentano i tag da aggiungere al post (l'input terminerà quando riceverai
"done") - Creare un Set di stringhe per memorizzare i tag unici
- Aggiungere ogni tag al Set (i duplicati verranno rimossi automaticamente)
- Stampare i risultati della gestione dei tag del blog nel formato esatto mostrato di seguito
Ad esempio, se il titolo del blog è "Introduction to Dart Programming" e i tag sono "programming", "dart", "tutorial", "programming", "beginner", il programma dovrebbe produrre:
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 successfullySe il titolo del blog è "Web Development Tips" e i tag sono "web", "html", "css", "web", "html", "javascript", il programma dovrebbe produrre:
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 successfullySe il titolo del blog è "Getting Started" e i tag sono "guide", "basics", il programma dovrebbe produrre:
Blog Post: Getting Started
Tags added: [guide, basics]
Unique tags: {guide, basics}
Total unique tags: 2
Status: Blog post tagged successfullyIl programma deve creare un Set usando la sintassi delle parentesi graffe {} e mostrare come i Set gestiscono automaticamente la rimozione dei duplicati. Memorizza prima tutti i tag inseriti in una lista per mostrare ciò che è stato inserito inizialmente, poi crea il Set per mostrare i tag unici. Il Set dovrebbe visualizzare i suoi elementi nel formato standard dei Set, con parentesi graffe.
Provalo tu
import 'dart:io';
void main() {
// Leggi il titolo del post del blog
String? title = stdin.readLineSync();
// Leggi i tag finché non viene inserito "done"
List<String> allTags = [];
String? tag;
while ((tag = stdin.readLineSync()) != "done") {
if (tag != null) {
allTags.add(tag);
}
}
// TODO: Scrivi qui il tuo codice
// Crea un Set dalla lista dei tag per ottenere i tag univoci
// Calcola il numero totale di tag univoci
// Mostra i risultati
print("Blog Post: $title");
print("Tags added: $allTags");
// Stampa i tag univoci nel formato Set
// Stampa il numero totale di tag univoci
// Stampa il messaggio di stato
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Manipolazione avanzata delle liste
Proprietà delle liste: primo e ultimoStato della lista: isEmpty e isNotEmpInvertire una listaAggiungere a una lista: insertRimozione dalla lista: removeWhereRicerca in una lista: indexOfOrdinare una listaMescolare una listaRiepilogo - Organizzatore di liste4Manipolazione avanzata delle mappe
Iterare su una mappaVerificare chiavi e valoriProprietà delle mappe: chiavi e valoriAggiunta condizionale: putIfAbsentRimuovere elementi da una mappaMappe annidateRiepilogo - Aggiornamento dell'inventario2Operazioni funzionali sulle liste
Trasformare con 'map'Filtrare con 'where'Usare '.toList()'Verificare condizioni con 'any'Condizioni con 'every'Trovare con 'firstWhere'Riepilogo - Filtraggio dei dati3Insiemi
Che cos'è un insieme?Creare un insiemeAggiungere e rimuovere elementi dagli insiemiVerificare la presenza di elementi in un insiemeConvertire una lista in un insiemeUnione di insiemiIntersezione di insiemiDifferenza tra insiemiRiepilogo - Lista degli ospiti uniciEsercitati da solo: Compilatore Dart online