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.. {}