Ir al contenido principal

Otro vistazo a Dart

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

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...