Diccionarios
Clase 6 de 29 • Curso de Dart
Contenido del curso
Clase 6 de 29 • Curso de Dart
Contenido del curso
Usuario anónimo
Luis Fernando Bedón
Facundo Nicolás García Martoni
Jesus Soto
Matias Alburquenque
Carlos Isaac Rosales Castellanos
Miguel Angel Velazquez Romero
Luis Davaria
Paúl Terán
Valeria Calcina Cisneros
Boris Huezo
Francisco Peñalo Feliz
Jesus Soto
Oscar Ricardo Aranda
Daniel Mauricio Sanchez Acebedo
Carlos David Sanchez Moreno
Usuario anónimo
Milton Andrés Sanabria
Fabian Anzola
Joshua Daniel Rios Cervantes
Edisson Castro
Agustin Rodriguez Golpe
Juan Guillermo Perez Cardozo
David Luna
Usuario anónimo
Armando Alcantara
Wellington Perez
Diego Armando Calero Galvis
alexander garcia castañeda
🗺️ Map es utilizado generalmente para trabajar con JSON.
eso era todo lo que queria saber !
++RESUMEN DE LA CLASE++
Diccionarios/Maps/Hash: Son objetos que tienen una asociación entre llaves y valores, ambas de cualquier tipo. Las llaves son únicas, pero los valores pueden repetirse.
Declaración:
Map<tipo_llave, tipo_valor> map;
Inicialización:
map = {1:"Rojo",2:"Verde"};
Agregar elemento:
map[3]="Azul";
Eliminar elemento:
map.remove(llave);
Saber si el map está vacío:
map.isEmpty //Retorna un valor "true" si está vacío y "false" en caso contrario
Saber longitud:
map.lenght //Retorna un valor entero con la longitud del mapa
Es muy normal usar el tipo dynamic en la declaración de los Maps.
Gracias lo tomare para mis apuntes y ejemplos , Gracias y muy bien explicado
man realmente gracias por tus apuntes de verdad son geniales pero tengo un alcance, en la para saber la longitud del map pusiste map.lenght y es map.length
Código comentado de la clase:
// * Clase sobre Diccionarios (Maps o Hash) // ? Es un objeto que tiene una asociación entre llaves y valores, // ? ambos pueden ser declaradas de cualquier tipo de objeto. // ? Cada llave debe ser única pero el valor puede utilizarse tantas // ? veces como se necesite ! main(List<String> args) { Map estoEsUnMapa; // ! Esto es una declaración de un objeto tipo Map estoEsUnMapa = {1:'Rojo', 2:'Verde'}; // ? La declaración es diferente a las colecciones, // ? debe ser realizada entre llaves {} y debe asignársele una llave a cada valor. print(estoEsUnMapa); // * He aquí su impresión, y se visualiza igual de cómo se declara. Map<int, dynamic> estoEsUnMapaDinamico; // ! Con esta sintaxis, podemos definir cual será la llave int:dynamic y cual será el valor almacenado. // ! En este caso, al ser dinámico el valor asignado, puede tomar muchos tipos de valores. estoEsUnMapaDinamico = {1:'Uno', 2:2, 3:3.124}; // ! Prueba de lo anterior dicho. estoEsUnMapaDinamico[4] = true; // ? Otra forma de agregar contenido a un mapa. print(estoEsUnMapaDinamico); // * Visualización de su contenido estoEsUnMapaDinamico.remove(3); // ! Eliminamos un valor, dándole a este métodos u llave. print(estoEsUnMapaDinamico); // * Visualizamos. bool estaVacioElMapa = estoEsUnMapaDinamico.isEmpty; // * Método para comprobar si el mapa está vacio int longitud = estoEsUnMapaDinamico.length; // * Método para comprobar la longitud del mapa. print("Está vacio el mapa? : $estaVacioElMapa, cual es su longitud? : $longitud"); // ! Prueba de lo anterior mencionado. }
Que agradable es ver semejante entusiasmo por aprender. Gracias por el aporte amigo.
Utilizando el RemoveWhere:
Map<int , String > lista = { 1: 'Dart Vader', 2: 'Obi Wan', 3: 'Yoda'}; lista.removeWhere((key,value) => value == 'Dart Vader'); // {2: 'Obi Wan', 3: 'Yoda'}; lista.removeWhere((key,value) => key == 3); // {2: 'Obi Wan'};
Un ejemplo utilizando los conceptos de este video!
//Tipo map, el cual define a pares de valores (llave y valor) String propiedad = 'soltero'; Map <String, dynamic> persona = { 'nombre' : 'Carlos', 'edad' : 32, 'soltero' : true }; //Impresion del dato que queremos print(persona['nombre']); print(persona['edad']); //Imprimimos el valor de la variable propiedad que tiene a su vez el valor de la lllave soltero del map persona print(persona[propiedad]); //Inicio con num Map <int, String>personas = { 1: 'Tony', 2: 'Peter', 9: 'Strange' //Esto no se hace'10': 'Juan' }; //Nuevo elemento personas.addAll({ 4: 'Banner' }); print(personas); //Obtener un valor print(personas[2]); //Obtenemos la longitud del map personas print(personas.length); //Eliminamos una posicion del map personas personas.remove(9); //Imprimimos el resultado print(personas);
La opción addAll tampoco estaría mal implementarla :D
Los maps son muy utilizes en peticiones http con flutter
Un objeto Map corresponde a un conjunto de llave : valor y es equivalente en JavaScript a un objeto de tipo JSON (JavaScript Object Notation) pero con la diferencia de que siempre el dato correspondiente a la llave es tratado como un String.
Un objeto Map en Dart:
Map<String, dynamic> map = {'uno': 1, 'dos': 2, 'tres': 3};
Es equivalente en JavaScript a:
A) var json = {'uno': 1, 'dos': 2, 'tres': 3};
Aunque también puede ser escrito de la siguiente forma:
B) var json = {uno: 1, dos: 2, tres: 3};
Pero como quiera JavaScript lo interpreta de la siguiente manera:
console.log(json); => {'uno': 1, 'dos': 2, 'tres': 3}
Gracias lo tomare en mis apuntes , muy buena comparacion
tambien se puede agregar mas objetos de la siguiente manera usando
map.addAll(objeto);
Ejemplo:
Map<String,String> user; user={ "firstName":"cosme", "lastName:":"fulanito" }
Entonces si quiero agregar un nuevo clave valor al objeto actual, lo puedo hacer de la siguiente manera.
user.addAll({'email':'cosme.fulanito@gmail.com'}); print(user);
entonces en el ouput voy a tener lo siguiente objeto:
{ fistName: cosme, lastName: fulanito, email: cosme.fulanito@gmail.com }
Y creas unas estructura JSON entonces.
Esto es igual a los diccionarios de python.
Si muy similar.
Si buscas un una clave que no esta en el mapa o diccionario se obtendrá un null.
le agregue en la posicion [5] la cadena del ejemplo anterior.
la verdad Dart me parece un lenguaje bastante intuitivo, me recuerda mucho a Kotlin
La verdad no sé Kotlin, pero si dices que te lo recuerda, seguramente ese sea el próximo lenguaje de programación que voy a aprender. Dart es sencillamente genial :-)
Excelente curso!, consulta: los Map seria lo mismo que declarar un objeto en javascript? o un array asociativo en php?
:)
Me ha tocado usarlo recibiendo datos del Backend en Flutter en formato JSON... Son muy necesarios para ese tipo de cosas.
Si muy útil.
void main(List <String> arguments) { Map<String,int> myMap;//Map<Tipo1,Tipo2> variableName myMap = {'Dato1':1,'Dato2':2,'Dato3':3};//Llenar manualmente datos del mapa print(myMap);//Imprimir mapa myMap['Dato4'] = 4;//Añadir dato al mapa print(myMap);//Imprimir mapa myMap.remove('Dato3');//Remover elemento del mapa print(myMap); }```
Es posible iniciar el valor de un set colocando los distintos elementos entre llaves directamente
Set set; set = {'uno', 'dos', 'tres'}
Genial, los mapas son realmente facil de utilizar y tienen muchisímas aplicaciones. Entre ellas las clásicas agendas telefónicas:
ejemplo:
{Diego: 311xxxxxxx, Maria: 312xxxxxxx, Nathalia: 320xxxxxxx}
aprendí a leer C++ en otro curso y ya sabía escribir python, está siendo muy fácil asimilarlo, muchas gracias.