Programación de dardos - Conjunto de colección
Conjunto representa una colección de objetos en los que cada objeto puede aparecer solo una vez. La biblioteca dart: core proporciona la clase Set para implementar lo mismo.
Sintaxis
Identifier = new Set()
OR
Identifier = new Set.from(Iterable)
Dónde, Iterable representa una lista de valores para agregar a un conjunto.
Ejemplo
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);
}
}
Debería producir lo siguiente output -
100
20
5
60
70
Ilustración: 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);
}
}
Debería producir lo siguiente output -
12
13
14
Advanced Dart Collection ─ dart: biblioteca de colecciones
La biblioteca de dart: collection proporciona clases que permiten varias implementaciones de las colecciones de Dart. Discutiremos los siguientes temas en esta sección.
- HashMap
- HashSet
- LinkedList
- Queue
HashMap
Un HashMap es una implementación de Map basada en una tabla hash. Cuando recorre las claves o valores de un HashMap, no puede esperar un orden determinado. La sintaxis de la misma es la que se indica a continuación:
Sintaxis
Identifier= new HashMap()
Ejemplo
El siguiente ejemplo muestra cómo puede implementar un 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}');
}
Debería producir lo siguiente output -
Map after adding entries :{email: [email protected], dept: HR, name: Tom}
Adición de varios valores a un HashMap
La clase HashMap hereda la addAll()función de la clase Map. Esta función permite agregar varios valores a la vez.
Sintaxis
HashMap.addAll(Iterable)
Dónde, Iterable representa una lista de valores que se insertarán.
Ejemplo
import 'dart:collection';
main() {
var accounts = new HashMap();
accounts.addAll({'dept':'HR','email':'[email protected]'});
print('Map after adding entries :${accounts}');
}
Debería producir lo siguiente output -
Map after adding entries :{email: [email protected], dept: HR}
Eliminar valores de un HashMap
los remove() y el clear()Las funciones se utilizan para eliminar entradas del HashMap. losremove()A la función se le pasa una clave que representa la entrada a eliminar. losclear() La función se utiliza para eliminar todas las entradas del mapa.
Ejemplo
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}');
}
Debería producir lo siguiente 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
Un HashSet es una implementación de Set basada en una tabla hash desordenada. La sintaxis de la misma es:
Sintaxis
Identifier = new HashSet()
los add() La función se puede utilizar para completar una instancia de HashSet.
Ejemplo
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);
}
}
Debería producir lo siguiente output -
60
20
100
5
70
Agregar varios valores a un HashSet
los addAll()La función permite agregar múltiples valores al HashSet. El siguiente ejemplo ilustra lo mismo:
Ejemplo
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);
}
}
Debería producir lo siguiente output -
Default implementation :_HashSet
200
300
100
Eliminar valores de un HashSet
los remove()La función elimina el valor que se le pasa. losclear() La función elimina todas las entradas del HashSet.
Ejemplo
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}");
}
Debería producir lo siguiente output -
Printing hashet.. {200, 300, 100}
Printing hashet.. {200, 300}
Printing hashet.. {}