El mapa de Kotlin es una colección que contiene pares de objetos. El mapa contiene los datos en forma de pares que consisten en una clave y un valor. Las claves del mapa son únicas y el mapa contiene solo un valor para cada clave.
Kotlin distingue entre mapas inmutables y mutables . Los mapas inmutables creados con mapOf() significa que son de solo lectura y los mapas mutables creados con mutableMapOf() significa que podemos leer y escribir ambos.
Sintaxis:
fun <K, V> mapOf(vararg pairs: Pair<K, V>): Map<K, V>
- El primer valor del par es la clave y el segundo es el valor de la clave correspondiente.
- Si varios pares tienen la misma clave, el mapa devolverá el valor del último par.
- Las entradas del mapa se recorren en el orden especificado.
Programa Kotlin de mapOf()
Java
fun main(args: Array<String>) { //declaring a map of integer to string val map = mapOf(1 to "Geeks", 2 to "for" , 3 to "Geeks") //printing the map println( map) }
Producción:
{1=Geeks, 2=for, 3=Geeks}
Asignar claves, valores y entradas –
Java
fun main(args: Array<String>) { //declaring a map of integer to string val map = mapOf(1 to "One", 2 to "Two" , 3 to "Three", 4 to "Four") println("Map Entries : "+map) println("Map Keys: "+map.keys ) println("Map Values: "+map.values ) }
Producción:
Map Entries : {1=One, 2=Two, 3=Three, 4=Four} Map Keys: [1, 2, 3, 4] Map Values: [One, Two, Three, Four]
Tamaño de mapa –
Podemos determinar el tamaño del mapa usando dos métodos. Usando la propiedad de tamaño del mapa y usando el método count() .
Java
fun main() { val ranks = mapOf(1 to "India",2 to "Australia",3 to "England",4 to "Africa") //method 1 println("The size of the map is: "+ranks.size) //method 2 println("The size of the map is: "+ranks.count()) }
Producción:
The size of the map is: 4 The size of the map is: 4
Mapa vacío –
Podemos crear un mapa serializable vacío usando mapOf()
Ejemplo 2 de mapOf()
Java
fun main(args: Array<String>) { //here we have created an empty map using mapOf() val map1 = mapOf<String , Int>() println("Entries: " + map1.entries) //entries of map println("Keys:" + map1.keys) //keys of map println("Values:" + map1.values) //values of map }
Producción:
Entries: [] Keys:[] Values:[]
Obtener valores de Mapa –
Podemos recuperar valores de un mapa usando diferentes métodos discutidos en el siguiente programa.
Java
fun main() { val ranks = mapOf(1 to "India",2 to "Australia",3 to "England",4 to "Africa") //method 1 println("Team having rank #1 is: "+ranks[1]) //method 2 println("Team having rank #3 is: "+ranks.getValue(3)) //method 3 println("Team having rank #4 is: "+ranks.getOrDefault(4, 0)) // method 4 val team = ranks.getOrElse(2 ,{ 0 }) println(team) }
Producción:
Team having rank #1 is: India Team having rank #3 is: England Team having rank #4 is: Africa Australia
El mapa contiene clave o valores:
Podemos determinar que un mapa contiene una clave o valor usando los métodos containsKey() y containsValue() respectivamente.
Java
fun main() { val colorsTopToBottom = mapOf("red" to 1, "orange" to 2, "yellow" to 3, "green" to 4 , "blue" to 5, "indigo" to 6, "violet" to 7) var color = "yellow" if (colorsTopToBottom.containsKey(color)) { println("Yes, it contains color $color") } else { println("No, it does not contain color $color") } val value = 8 if (colorsTopToBottom.containsValue(value)) { println("Yes, it contains value $value") } else { println("No, it does not contain value $value") } }
Producción:
Yes, it contains color yellow No, it does not contain value 8
Dos valores y la misma clave –
Si dos valores tienen el mismo valor clave , el mapa contendrá el último valor de esos números.
Ejemplo 3 de mapOf()
Java
fun main(args: Array<String>) { //lets make two values with same key val map = mapOf(1 to "geeks1",2 to "for" , 1 to "geeks2") // return the map entries println("Entries of map : " + map.entries) }
Producción:
Entries of map : [1=geeks2, 2=for]
Explicación:
aquí el valor clave 1 se ha inicializado con dos valores: geeks1 y geeks2 , pero como sabemos, mapOf() solo puede tener un valor para un elemento clave , por lo tanto, el último valor solo lo almacena el mapa y geeks1 se elimina.
Publicación traducida automáticamente
Artículo escrito por ManishKhetan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA