Criando um Conjunto
Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 18 de 65.
Agora que você entende o que é um Set, vamos aprender como criar um. No Dart, você cria um Set usando chaves {} com os elementos separados por vírgulas, de forma semelhante a como você escreveria um conjunto matemático.
Set<String> colors = {'red', 'blue', 'green'};
print(colors); // {red, blue, green}É importante não confundir esta sintaxe com a criação de um Map. Embora ambos usem chaves, um Set contém apenas valores, enquanto um Map contém pares chave-valor separados por dois pontos. Um Set vazio deve ser explicitamente declarado com um tipo para distingui-lo de um Map vazio.
Set<String> emptySet = <String>{}; // Set vazio
Map<String, int> emptyMap = {}; // Map vazioVocê também pode criar um Set com valores duplicados, mas lembre-se de que as duplicatas serão removidas automaticamente, deixando apenas elementos únicos na coleção final.
Desafio
FácilCrie um programa que gerencie um sistema de marcação de blog criando um Set de tags exclusivas para uma postagem de blog. Seu programa deve:
- Ler uma entrada de string representando o título da postagem do blog
- Ler múltiplas entradas de string representando as tags a serem adicionadas à postagem (a entrada terminará quando você receber
"done") - Criar um Set de strings para armazenar as tags exclusivas
- Adicionar cada tag ao Set (as duplicatas serão removidas automaticamente)
- Imprimir os resultados da marcação do blog no formato exato mostrado abaixo
Por exemplo, se o título do blog for "Introduction to Dart Programming" e as tags forem "programming", "dart", "tutorial", "programming", "beginner", seu programa deve exibir:
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 o título do blog for "Web Development Tips" e as tags forem "web", "html", "css", "web", "html", "javascript", seu programa deve exibir:
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 o título do blog for "Getting Started" e as tags forem "guide", "basics", seu programa deve exibir:
Blog Post: Getting Started
Tags added: [guide, basics]
Unique tags: {guide, basics}
Total unique tags: 2
Status: Blog post tagged successfullySeu programa deve criar um Set usando a sintaxe de chaves {} e demonstrar como os Sets lidam automaticamente com a remoção de duplicatas. Armazene todas as tags de entrada em uma lista primeiro para mostrar o que foi originalmente inserido e, em seguida, crie o Set para mostrar as tags exclusivas. O Set deve exibir seu conteúdo no formato padrão de Set com chaves.
Folha de consulta
Crie um Set usando chaves {} com elementos separados por vírgulas:
Set<String> colors = {'red', 'blue', 'green'};
print(colors); // {red, blue, green}Para Sets vazios, declare explicitamente o tipo para distinguir de Maps vazios:
Set<String> emptySet = <String>{}; // Set vazio
Map<String, int> emptyMap = {}; // Map vazioSets removem automaticamente valores duplicados, mantendo apenas elementos únicos.
Experimente você mesmo
import 'dart:io';
void main() {
// Ler o título da postagem do blog
String? title = stdin.readLineSync();
// Ler as tags até que "done" seja inserido
List<String> allTags = [];
String? tag;
while ((tag = stdin.readLineSync()) != "done") {
if (tag != null) {
allTags.add(tag);
}
}
// TODO: Escreva seu código aqui
// Criar um Set a partir da lista de tags para obter tags únicas
// Calcular o número total de tags únicas
// Exibir os resultados
print("Blog Post: $title");
print("Tags added: $allTags");
// Imprimir tags únicas no formato de Set
// Imprimir a contagem total de tags únicas
// Imprimir mensagem de status
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Manipulação Avançada de Listas
Propriedades de Lista: first & lastEstado da Lista: isEmpty & isNotEmptyInvertendo uma ListaAdicionando a uma Lista: insertRemoção em Listas: removeWhereBuscando em uma Lista: indexOfOrdenando uma ListaEmbaralhando uma ListaRecapitulação - Organizador de Listas4Manipulação Avançada de Mapas
Iterando sobre um MapVerificando Chaves e ValoresPropriedades do Map: keys & valuesAdição Condicional: putIfAbsentRemovendo Entradas de um MapMaps AninhadosRecapitulação - Atualização de Inventário2Operações Funcionais em Listas
Transformando com 'map'Filtrando com 'where'Usando '.toList()'Verificando Condições com 'any'Condições com 'every'Encontrando com 'firstWhere'Recapitulação - Filtragem de Dados5Projeto: Cálculo de Carrinho de Compras
Configuração do ProjetoAdicionando Itens ao Carrinho3Conjuntos
O que é um Conjunto?Criando um ConjuntoAdicionando e Removendo de ConjuntosVerificando Elementos em um ConjuntoConvertendo uma Lista para um ConjuntoUnião de ConjuntosInterseção de ConjuntosDiferença de ConjuntosRecapitulação - Lista de Convidados Únicos