En esta ocasión veremos el uso de mapas en el lenguaje Dart. Los tipos Map en Dart son:
- Map.
- HashMap.
- LinkedHashMap.
- SplayTreeMap.
Estas estructuras de datos nos permiten almacenar valores (values) identificados por una clave (key). Por lo que si queremos acceder a un elemento lo haremos mediante su clave.
Pero antes de comenzar, recordemos que Dart es:
- Un lenguaje de programación optimizado enfocado al desarrollo de aplicaciones móviles.
- Un lenguaje de alto nivel similar a lenguajes como Java, C/C++ y C#.
- Compilado y de tipado estático.
Para compilar y crear un ejecutable tecleamos en una terminal:
dart compile exe programa.dart
Para trabajar con estructuras de datos tipo mapa debemos importar lo siguiente:
import 'dart:collection';
Hay dos formas de declarar un Mapa:
Usando var:
var mapa = new HashMap<String, int>();
Usando la clase:
HashMap mapa = new HashMap<String, int>();
También podríamos declarar un mapa de la siguiente manera:
var nuevo_mapa = {}; if (nuevo_mapa is Map) { print("Nuevo mapa es un Map"); }
Si queremos un mapa con datos:
var mapa = {1:"X", 2:"Y",3:"Z"}
Otra forma dedeclarar un mapa:
var mapa = new HashMap.from({"D": 4, "E": 5, "F": 6});
Podríamos agregar valores y llaves de esta forma:
var mapa = new HashMap<String, int>(); mapa.putIfAbsent("A", () => 1); mapa.putIfAbsent("B", () => 2); mapa.putIfAbsent("C", () => 3);
Podemos validar si está vacío o no:
// Si el mapa no esta vacío, lo mostramos en pantalla if (!mapa.isEmpty) { print("Mapa: " + mapa.toString()); }
Verificamos si estamos usando determinada estructura:
if (mapa is HashMap) { print("Mapa es un HashMap"); } // Iteramos el mapa mapa.forEach((key, value) => print("${key} : ${value}")); // Obtenemos su tamaño int longitud = mapa.length; print("Longitud mapa: ${longitud}");
Iteramos el mapa y obtenemos su tamaño. Así como verificar si contiene determinado elemento y remover elementos:
bool contiene = mapa.containsKey("A"); if (contiene) { print("El mapa contiene la letra 'A'"); } mapa.remove("C"); print("Mapa: " + mapa.toString());
Modificar el valor de los elementos del mapa:
var mapa = new HashMap.from({"A": 4, "B": 5}); print("Mapa original: " + mapa.toString()); // Actualizamos sus valores mapa.update("A", (value) => 0); mapa.update("B", (value) => 1); print("Mapa modificado: " + mapa.toString());
Usando los métodos: from y of
// Decalaramos un mapa Map<String, String> map1 = new Map.from({"Alef": "Uno", "Beth": "Dos"}); // Copiamos el contenido del map1 al map2 con el método from Map<String, String> map2 = new Map.from(map1); // Copiamos el contenido del map2 al map3 con el método of Map<String, String> map3 = new Map.of(map2); // Imprimos en pantalla el contenido del map3 print("Mapa 3: ${map3.toString()}");
Hay diversas formas de aproverchar estas esctructuras en nuestros desarrollos:
// Método containsKey if (map1.containsKey("Alef")) { print("Contiene la palabra 'Alef'"); } // Método containsKey if (map3.containsValue("Uno")) { print("Contiene la palabra 'Uno'"); } // Método forEach map2.forEach((k, v) { print('{ key: $k, value: $v }'); }); map2.entries.forEach((e) { print('{ key: ${e.key}, value: ${e.value} }'); });
Continuaremos en otro próximo post.
Enlaces:
https://dart.dev/https://www.bezkoder.com/dart-map/
Comentarios
Publicar un comentario