¿Cómo iterar sobre HashMap en Kotlin ?
typealias HashMap<K, V> = HashMap<K, V> (source)Otra forma que no se ha mencionado es:
val mapOfItems = hashMapOf(1 to "x", 2 to "y", -1 to "zz") mapOfItems.map { (key, value) -> println("$key = $value") }Use 'for loop' o 'forEach' o 'Iterator'
fun main(args : Array<String>) { val items = HashMap<String, String>() items["1"] = "USA" items["2"] = "Japan" items["3"] = "India" //for loop example println("\n-- Example 1.1 -- "); for ((k, v) in items) { println("$k = $v") } // forEach example println("\n-- Example 1.2 --"); items.forEach { (k, v) -> println("$k = $v") } //Iterator example println("\n-- Example 1.3 --"); val itr = items.keys.iterator() while (itr.hasNext()) { val key = itr.next() val value = items[key] println("${key}=$value") } }No es tan difícil:
for ((key, value) in map) { println("$key = $value") } O
( Actualizado de acuerdo con la información de @RuckusT-Boom y @KenZira ).
map.forEach { (key, value) -> println("$key = $value") }Android debajo de N ! map.forEach { key, value -> println("$key = $value") } referencia a Java 8 api que conduce a:
Rejecting re-init on previously-failed class java.lang.Class<T> map.forEach { (key, value) -> println("$key = $value") } es la característica de Kotlin