Dardo – Colecciones

Las colecciones son grupos de objetos que representan un elemento en particular. La biblioteca dart::collection se utiliza para implementar la colección en dart. Hay una variedad de colecciones disponibles en dart.

Algunas de las clases de Dart Collection son:

  • List<E>: una lista es un grupo ordenado de objetos.
  • Set<E>: colección de objetos en la que cada uno de los objetos aparece solo una vez
  • Map<K, V>: colección de objetos que tiene un objeto simple basado en un par clave/valor. La clave y el valor de un mapa pueden ser de cualquier tipo.
  • Queue<E>: una cola es una colección que se puede manipular en ambos extremos. Uno puede iterar sobre una cola con un iterador o usando forEach.
  • DoubleLinkedQueue<E>: Lista doblemente enlazada basada en la estructura de datos de la cola.
  • HashMap<K, V>: Mapa basado en una tabla hash, es decir, un mapa desordenado.
  • HashSet<E>: conjunto basado en la tabla hash, es decir, conjunto desordenado.
  • LinkedHashMap<K, V>: Similar a HashMap pero basado en LinkedList.
  • LinkedHashSet<E>: Similar a HashSet pero basado en LinkedList.
  • LinkedList<E extiende LinkedListEntry<E>>: Es una lista especializada de elementos con doble enlace.
  • LinkedListEntry<E extiende LinkedListEntry<E>>: un elemento de LinkedList.
  • MapBase<K, V>: esta es la clase base para Map.
  • UnmodifiableListView<E>: una vista de lista no modificable de otra lista.
  • UnmodifiableMapBase<K, V>: Implementación básica de un Mapa no modificable.
  • UnmodifiableMapView<K, V>: Vista no modificable del mapa.

Discutiremos las 4 colecciones básicas con ejemplos aquí.

1. Lista<E>

La lista es un grupo ordenado de objetos donde cada objeto es de un tipo específico. Para definir una lista en dart, especifique el tipo de objeto dentro de los corchetes angulares (<>) como se muestra a continuación:

List<String> fruits = ["Mango", "Apple", "Banana"]

Ejemplo: 

Aquí hemos definido una lista y realizado algunas operaciones comunes junto con algunos métodos básicos de uso común.

Dart

void main() {
  // creating a new empty List
  List geekList = new List();
   
  // We can also create a list with a predefined type
  // as List<int> sampleList = new List()
  // and also define a list of fixed length as
  // List<int> sampleList = new List(5)
   
  // Adding an element to the geekList
  geekList.addAll([1,2,3,4,5,"Apple"]);
  print(geekList);
   
  // Looping over the list
  for(var i = 0; i<geekList.length;i++){
    print("element $i is ${geekList[i]}");
  }
   
  // Removing an element from geekList by index
  geekList.removeAt(2);
   
  // Removing an element from geekList by object
  geekList.remove("Apple");
  print(geekList);
   
  // Return a reversed version of the list
  print(geekList.reversed);
   
  // Checks if the list is empty
  print(geekList.isEmpty);
   
  // Gives the first element of the list
  print(geekList.first);
   
  // Reassigning the geekList and creating the
  // elements using Iterable
  geekList = Iterable<int>.generate(10).toList();
  print(geekList);
}

Producción:

[1, 2, 3, 4, 5, Apple]
element 0 is 1
element 1 is 2
element 2 is 3
element 3 is 4
element 4 is 5
element 5 is Apple
[1, 2, 4, 5]
(5, 4, 2, 1)
false
1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2. Establecer<E>

Los conjuntos son una de las partes esenciales de Dart Collections. Un conjunto se define como una colección desordenada de objetos únicos. Para definir un conjunto siga lo siguiente:

Set fruits = Set.from("Mango", "Apple", "Banana")

Ejemplo:

Como se discutió anteriormente, un conjunto almacena un grupo de objetos que no se repiten. A continuación se muestra un programa de ejemplo.

Dart

void main() {
   
  // Initializing the Set and Adding the values
  Set geekSet = new  Set();
  geekSet.addAll([9,1,2,3,4,5,6,1,1,9]);
   
   
  // Looping over the set
  for(var el in geekSet){
    print(el);
  }
   
  // length of the set.
  print('Length: ${geekSet.length}');
   
  // printing the first element in the set
  print('First Element: ${geekSet.first}');
   
  // Deleting an element not present. No Change
  geekSet.remove(10);
   
  // Deleting an element 9
  geekSet.remove(9);
  print(geekSet);
}

Producción:

9
1
2
3
4
5
6
Length: 7
First Element: 9
{1, 2, 3, 4, 5, 6}

3. Mapa<K, V>

En Dart, los mapas son una colección de pares clave-valor no ordenada que establece una clave asociada a los valores dentro. Para definir un mapa, especifique el tipo de clave y el tipo de valor dentro de los corchetes angulares (<>) como se muestra a continuación:

Map<int, string> fruits = {1: "Mango", 2:"Apple", 3:"Banana"}

Ejemplo:

La colección de mapas almacena los objetos como un par clave-valor. A continuación se muestra un ejemplo.

Dart

void main() {
   
  // Initializing the map with sample values.
  var geekMap = {1:"Apple",2:"Mango",3:"Banana"};
  print(geekMap);
   
  // Adding elements by different methods.
  geekMap.addAll({4:'Pineapple',2:'Grapes'});
  geekMap[9]="Kiwi";
  print(geekMap);
   
  // printing key and values
  print('Keys: ${geekMap.keys} \nValues: ${geekMap.values}');
   
  // removing an element from the map by its key
  geekMap.remove(2);
   
  // printing the map and its length
  print('{$geekMap} length is ${geekMap.length}');
}

Producción:

{1: Apple, 2: Mango, 3: Banana}
{1: Apple, 2: Grapes, 3: Banana, 4: Pineapple, 9: Kiwi}
Keys: (1, 2, 3, 4, 9) 
Values: (Apple, Grapes, Banana, Pineapple, Kiwi)
{{1: Apple, 3: Banana, 4: Pineapple, 9: Kiwi}} length is 4

4. Cola<E>

Las colas se utilizan para implementar la recopilación FIFO (primero en entrar, primero en salir). Esta colección se puede manipular desde ambos extremos. Una cola en dart se define de la siguiente manera:

Queue<String> queue = new Queue("Mango", "Apple","Banana")

Ejemplo:

Dart

import 'dart:collection';
void main() {
   
  // Initializing the Set and Adding the values
  // We can also initialize a queue of a specific type
  // as Queue<int> q = new Queue();
  var geekQueue = new  Queue();
  geekQueue.addAll([9,1,2,3,4,5,6,1,1,9]);
   
  // Adds Element to the Start of the Queue
  geekQueue.addFirst("GFG");
   
  // Adds Element to the End of the Queue
  geekQueue.addLast("GFG2");
  print(geekQueue);
   
  // Removes the first Element
  geekQueue.removeFirst();
  print(geekQueue);
   
  // Removes the Last Element
  geekQueue.removeLast();
  print(geekQueue);
   
  // printing the first element in the set
  print('First Element: ${geekQueue.first}');
   
  // Looping over the set
  for(var el in geekQueue){
    print(el);
  }
   
  // Other Operations
  // length of the set.
  print('Length: ${geekQueue.length}');
   
  // Deleting an element not present. No Change
  geekQueue.remove(10);
   
  // Deleting an element 9
  geekQueue.remove(2);
  print(geekQueue);
   
   
}

Producción:

{GFG, 9, 1, 2, 3, 4, 5, 6, 1, 1, 9, GFG2}
{9, 1, 2, 3, 4, 5, 6, 1, 1, 9, GFG2}
{9, 1, 2, 3, 4, 5, 6, 1, 1, 9}
First Element: 9
9
1
2
3
4
5
6
1
1
9
Length: 10
{9, 1, 3, 4, 5, 6, 1, 1, 9}
Documentation 

Publicación traducida automáticamente

Artículo escrito por muazzamfaraaz y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *