Els mapes són una col·lecció de parells clau-valor on cada clau és única. Són molt útils quan necessitem associar valors a claus específiques i accedir a aquests valors de manera eficient. En aquest tema, aprendrem com crear, manipular i utilitzar mapes en Dart.
Continguts
Creació de Mapes
En Dart, podem crear mapes utilitzant literals de mapes o el constructor Map()
. Aquí teniu alguns exemples:
void main() { // Creació d'un mapa buit Map<String, int> mapBuit = {}; // Creació d'un mapa amb valors inicials Map<String, String> capitals = { 'Espanya': 'Madrid', 'França': 'París', 'Itàlia': 'Roma' }; // Utilitzant el constructor Map() Map<int, String> nombres = Map(); nombres[1] = 'Un'; nombres[2] = 'Dos'; print(mapBuit); // {} print(capitals); // {Espanya: Madrid, França: París, Itàlia: Roma} print(nombres); // {1: Un, 2: Dos} }
Accés als Elements del Mapa
Podem accedir als valors d'un mapa utilitzant les claus corresponents:
void main() { Map<String, String> capitals = { 'Espanya': 'Madrid', 'França': 'París', 'Itàlia': 'Roma' }; print(capitals['Espanya']); // Madrid print(capitals['França']); // París }
Si intentem accedir a una clau que no existeix, obtindrem null
:
void main() { Map<String, String> capitals = { 'Espanya': 'Madrid', 'França': 'París', 'Itàlia': 'Roma' }; print(capitals['Alemanya']); // null }
Modificació de Mapes
Podem afegir, actualitzar o eliminar elements d'un mapa de la següent manera:
void main() { Map<String, String> capitals = { 'Espanya': 'Madrid', 'França': 'París', 'Itàlia': 'Roma' }; // Afegir un nou element capitals['Alemanya'] = 'Berlín'; // Actualitzar un element existent capitals['Espanya'] = 'Barcelona'; // Eliminar un element capitals.remove('França'); print(capitals); // {Espanya: Barcelona, Itàlia: Roma, Alemanya: Berlín} }
Iteració sobre Mapes
Podem iterar sobre els elements d'un mapa utilitzant bucles for
o mètodes com forEach
:
void main() { Map<String, String> capitals = { 'Espanya': 'Madrid', 'França': 'París', 'Itàlia': 'Roma' }; // Utilitzant un bucle for for (var clau in capitals.keys) { print('La capital de $clau és ${capitals[clau]}'); } // Utilitzant forEach capitals.forEach((clau, valor) { print('La capital de $clau és $valor'); }); }
Funcions i Mètodes de Mapes
Dart proporciona diverses funcions i mètodes útils per treballar amb mapes:
Mètode | Descripció |
---|---|
containsKey(clau) |
Retorna true si el mapa conté la clau especificada. |
containsValue(valor) |
Retorna true si el mapa conté el valor especificat. |
isEmpty |
Retorna true si el mapa està buit. |
isNotEmpty |
Retorna true si el mapa no està buit. |
length |
Retorna el nombre d'entrades en el mapa. |
clear() |
Elimina tots els elements del mapa. |
Exemple:
void main() { Map<String, String> capitals = { 'Espanya': 'Madrid', 'França': 'París', 'Itàlia': 'Roma' }; print(capitals.containsKey('Espanya')); // true print(capitals.containsValue('Madrid')); // true print(capitals.isEmpty); // false print(capitals.length); // 3 capitals.clear(); print(capitals.isEmpty); // true }
Exercicis Pràctics
Exercici 1
Crea un mapa que associï noms de persones amb les seves edats. Afegeix algunes entrades, actualitza una edat i elimina una entrada. Mostra el mapa resultant.
Solució
void main() { Map<String, int> edats = { 'Anna': 25, 'Joan': 30, 'Maria': 22 }; // Afegir una nova entrada edats['Pere'] = 28; // Actualitzar una edat edats['Anna'] = 26; // Eliminar una entrada edats.remove('Joan'); print(edats); // {Anna: 26, Maria: 22, Pere: 28} }
Exercici 2
Crea un mapa que associï noms de països amb les seves capitals. Escriu una funció que prengui aquest mapa i un nom de país com a paràmetre i retorni la capital del país. Si el país no existeix en el mapa, retorna un missatge indicant-ho.
Solució
String obtenirCapital(Map<String, String> capitals, String pais) { if (capitals.containsKey(pais)) { return 'La capital de $pais és ${capitals[pais]}'; } else { return 'El país $pais no es troba en el mapa'; } } void main() { Map<String, String> capitals = { 'Espanya': 'Madrid', 'França': 'París', 'Itàlia': 'Roma' }; print(obtenirCapital(capitals, 'Espanya')); // La capital de Espanya és Madrid print(obtenirCapital(capitals, 'Alemanya')); // El país Alemanya no es troba en el mapa }
Conclusió
Els mapes són una eina poderosa per gestionar col·leccions de dades associades a claus úniques. Hem après com crear, accedir, modificar i iterar sobre mapes, així com utilitzar diverses funcions i mètodes útils. Amb els exercicis pràctics, hem reforçat aquests conceptes i estem preparats per aplicar-los en projectes reals.
Curs de Programació en Dart
Mòdul 1: Introducció a Dart
- Introducció a Dart
- Configuració de l'Entorn de Desenvolupament
- El Teu Primer Programa en Dart
- Sintaxi i Estructura Bàsica
Mòdul 2: Conceptes Bàsics de Dart
Mòdul 3: Col·leccions
Mòdul 4: Programació Orientada a Objectes en Dart
Mòdul 5: Funcionalitats Avançades de Dart
Mòdul 6: Gestió d'Errors i Depuració
Mòdul 7: Paquets i Biblioteques de Dart
Mòdul 8: Dart per a Web i Mòbil
- Introducció a Flutter
- Construcció d'una Aplicació Simple amb Flutter
- Dart per al Desenvolupament Web