Dart:
Usando arrays asociativos
Cómo hacerlo:
Dart ofrece una sintaxis sencilla para crear y manipular Mapas. A continuación, se muestran ejemplos que demuestran operaciones básicas como la creación, adición de elementos y obtención de valores.
void main() {
// Creando un mapa
var coloresFrutas = {
'manzana': 'rojo',
'banana': 'amarillo',
'uva': 'morado'
};
// Agregando un nuevo par clave-valor
coloresFrutas['naranja'] = 'naranja';
// Accediendo a un valor por su clave
print(coloresFrutas['manzana']); // Salida: rojo
// Actualizando un valor
coloresFrutas['banana'] = 'verde';
// Iterando sobre el Mapa
coloresFrutas.forEach((fruta, color) {
print('$fruta: $color');
});
// Salida de muestra:
// manzana: rojo
// banana: verde
// uva: morado
// naranja: naranja
}
Para estructuras de datos complejas o funcionalidad extendida, los programadores de Dart a menudo confían en bibliotecas adicionales. Una de estas bibliotecas es collection
que proporciona tipos de colecciones avanzadas y utilidades. Aunque collection
no modifica la manera básica en que se manejan los Mapas, los enriquece con funciones de utilidad y tipos de colecciones más sofisticados. Así es como podrías usarla para una tarea más específica, como ordenar un Mapa por sus valores:
Primero, asegúrate de que el paquete collection
esté incluido en tu archivo pubspec.yaml
:
dependencies:
collection: ^1.15.0
Luego, puedes usarlo de la siguiente manera:
import 'package:collection/collection.dart';
void main() {
var coloresFrutas = {
'manzana': 'rojo',
'banana': 'amarillo',
'uva': 'morado',
'naranja': 'naranja'
};
// Ordenando el Mapa por sus valores (colores)
var frutasOrdenadasPorColor = SplayTreeMap.from(
coloresFrutas,
(key1, key2) => coloresFrutas[key1]!.compareTo(coloresFrutas[key2]!)
);
print(frutasOrdenadasPorColor);
// Salida:
// {naranja: naranja, manzana: rojo, banana: amarillo, uva: morado}
}
Este ejemplo demuestra cómo ordenar las entradas de un Mapa basado en sus valores, mostrando cómo Dart y su vibrante ecosistema pueden manejar ágilmente arreglos asociativos para manipulaciones de datos más sofisticadas.