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