Programação Dart - Conjunto de coleta

Set representa uma coleção de objetos em que cada objeto pode ocorrer apenas uma vez. A biblioteca dart: core fornece a classe Set para implementar o mesmo.

Sintaxe

Identifier = new Set()

OR

Identifier = new Set.from(Iterable)

Onde, Iterable representa uma lista de valores a serem adicionados a um Conjunto.

Exemplo

void main() { 
   Set numberSet = new  Set(); 
   numberSet.add(100); 
   numberSet.add(20); 
   numberSet.add(5); 
   numberSet.add(60); 
   numberSet.add(70);
   print("Default implementation :${numberSet.runtimeType}");  
   
   // all elements are retrieved in the order in which they are inserted 
   for(var no in numberSet) { 
      print(no); 
   } 
}

Deve produzir o seguinte output -

100 
20 
5 
60 
70

Ilustração: Set.from ()

void main() { 
   Set numberSet = new Set.from([12,13,14]); 
   print("Default implementation :${numberSet.runtimeType}");  
   // all elements are retrieved in the order in which they are inserted 
   for(var no in numberSet) { 
      print(no); 
   } 
}

Deve produzir o seguinte output -

12 
13 
14

Coleção avançada de dardos ─ dardo: biblioteca da coleção

A biblioteca dart: collection fornece classes que permitem várias implementações de coleções Dart. Discutiremos os seguintes tópicos nesta seção.

  • HashMap
  • HashSet
  • LinkedList
  • Queue

HashMap

Um HashMap é uma implementação baseada em tabela hash de Map. Quando você itera por meio de chaves ou valores de um HashMap, você não pode esperar uma determinada ordem. A sintaxe para o mesmo é fornecida abaixo -

Sintaxe

Identifier= new HashMap()

Exemplo

O exemplo a seguir mostra como você pode implementar um HashMap -

import 'dart:collection'; 
main() { 
   var accounts = new HashMap(); 
   accounts['dept']='HR'; 
   accounts['name']='Tom'; 
   accounts['email']='[email protected]'; 
   print('Map after adding  entries :${accounts}'); 
}

Deve produzir o seguinte output -

Map after adding entries :{email: [email protected], dept: HR, name: Tom}

Adicionando vários valores a um HashMap

A classe HashMap herda o addAll()função da classe Map. Esta função permite adicionar vários valores de uma vez.

Sintaxe

HashMap.addAll(Iterable)

Onde, Iterable representa uma lista de valores a serem inseridos.

Exemplo

import 'dart:collection'; 
main() { 
   var accounts = new HashMap(); 
   accounts.addAll({'dept':'HR','email':'[email protected]'}); 
   print('Map after adding  entries :${accounts}'); 
}

Deve produzir o seguinte output -

Map after adding  entries :{email: [email protected], dept: HR}

Removendo valores de um HashMap

o remove() e a clear()funções são usadas para remover entradas do HashMap. oremove()função é passada uma chave que representa a entrada a ser removida. oclear() função é usada para remover todas as entradas do mapa.

Exemplo

import 'dart:collection'; 
main() { 
   var accounts = new HashMap(); 
   accounts['dept'] = 'HR'; 
   accounts['name'] = 'Tom'; 
   accounts['email'] = '[email protected]'; 
   print('Map after adding  entries :${accounts}');
   accounts.remove('dept'); 
   print('Map after removing  entry :${accounts}');  
   accounts.clear(); 
   print('Map after clearing entries :${accounts}'); 
}

Deve produzir o seguinte output -

Map after adding  entries :{email: [email protected], dept: HR, name: Tom} 
Map after removing  entry :{email: [email protected], name: Tom} 
Map after clearing entries :{}

HashSet

Um HashSet é uma implementação de conjunto baseada em uma tabela de hash não ordenada. A sintaxe para o mesmo é -

Sintaxe

Identifier = new HashSet()

o add() função pode ser usada para preencher uma instância de HashSet.

Exemplo

import 'dart:collection'; 
void main() { 
   Set numberSet = new  HashSet(); 
   numberSet.add(100); 
   numberSet.add(20); 
   numberSet.add(5); 
   numberSet.add(60); 
   numberSet.add(70); 
   print("Default implementation :${numberSet.runtimeType}"); 
   for(var no in numberSet){ 
      print(no); 
   }
}

Deve produzir o seguinte output -

60 
20 
100 
5 
70

Adicionando vários valores a um HashSet

o addAll()função permite adicionar vários valores ao HashSet. O exemplo a seguir ilustra o mesmo -

Exemplo

import 'dart:collection'; 
void main() { 
   Set numberSet = new  HashSet(); 
   numberSet.addAll([100,200,300]); 
   print("Default implementation :${numberSet.runtimeType}"); 
   for(var no in numberSet){ 
      print(no); 
   } 
}

Deve produzir o seguinte output -

Default implementation :_HashSet 
200 
300 
100

Removendo valores de um HashSet

o remove()função remove o valor passado para ele. oclear() função remove todas as entradas do HashSet.

Exemplo

import 'dart:collection'; 
void main() { 
   Set numberSet = new  HashSet(); 
   numberSet.addAll([100,200,300]); 
   print("Printing hashet.. ${numberSet}");  
   numberSet.remove(100); 
   print("Printing hashet.. ${numberSet}");  
   numberSet.clear(); 
   print("Printing hashet.. ${numberSet}"); 
}

Deve produzir o seguinte output -

Printing hashet.. {200, 300, 100} 
Printing hashet.. {200, 300} 
Printing hashet.. {}