Introducció
Un Map és un conjunt de parelles clau-valor, en què es pot accedir a un valor a partir de la seva clau.
Recuperar claus i valors
A continuació tens un mapa immutable amb 3 parells clau-valor:
val pets Per recuperar un valor d’un mapa has de proporcionar la seva clau amb [] (o la funció get()).
Si no es troba la clau donada, retorna null.
Per gestionar claus inexistents, pots utilitzar un valor per defecte:
O executar una funció que retorni un valor per defecte:
== "NO PET")Per efectuar operacions sobre totes les claus o tots els valors d’un mapa, pots recuperar-los de les propietats keys i values respectivament.
keysés un conjunt de totes les claus del mapavaluesés una col·lecció de tots els valors del mapa.
A continuació tens un map amb 3 telefons:
val phoneBook "Raquel" to 629510476,
"Joan" to 670434123,
"Laura" to 621987345
)Quin és el telèfon de “Laura”?
Show solution
phoneBook["Laura"]Operacions d’escriptura
Els mapes mutables ofereixen operacions d’escriptura específiques per a mapes.
Aquestes operacions permeten canviar el contingut del mapa utilitzant l’accés basat en claus als valors.
Hi ha certes regles que defineixen les operacions d’escriptura en mapes:
-
Els valors es poden actualitzar.
-
Les claus mai canvien: una vegada afegeixes una entrada, la seva clau és constant.
-
Per a cada clau, sempre hi ha un únic valor associat amb ella.
-
Pots afegir i eliminar entrades completes.
Afegir i actualitzar entrades
Per afegir un nou parell clau-valor a un mapa mutable, utilitza [] (o put()).
pets[2] També pots utilitzar la sintaxis +=:
pets Quan es crida amb una clau present al mapa, els operadors sobreescriuen els valors de les entrades corresponents.
pets[3] pets[3]
Eliminar entrades
Per eliminar una entrada d’un mapa mutable, utilitza -= (o remove())
pets[3] pets
Exemples
Cistella de la compra
Aquí tens un exemple de com podeu utilitzar un mapa per emmagatzemar preus de productes i després calcular el cost total d’una cistella de la compra:
val productPrices
val cart val totalCost
En aquest programa Kotlin,
productPricesés un mapa de només lectura que conté productes com a claus i els seus preus com a valors.- La llista cart representa els articles d’una cistella de la compra.
A continuació, calculem el totalCost iterant sobre la cistella i sumant els preus dels productes. L’operador ?: s’utilitza per gestionar els casos on un producte podria no existir al mapa, assignant-li un valor per defecte de 0.0
Suposem que vols agrupar una llista de persones per la seva edat:
fun val people val peopleByAge:
}L’ús de la funció groupBy retorna un nou mapa on cada clau és una edat, i el valor és una llista de tots els objectes Person amb aquella edat.
Aquest és un mètode eficient per classificar ràpidament les teves dades basant-te en certs atributs.