142

如何在HashMap中迭代Kotlin

typealias HashMap<K, V> = HashMap<K, V> (source)
4

4 回答 4

318

这并不难:

for ((key, value) in map) {
    println("$key = $value")
}


(根据@ RuckusT -Boom@KenZira 的信息更新。)

 map.forEach { (key, value) -> println("$key = $value") }
于 2017-11-09T14:30:30.687 回答
78

对于上述答案,请注意Android以下N

map.forEach { key, value -> println("$key = $value") }

引用Java 8api 导致:

Rejecting re-init on previously-failed class java.lang.Class<T>

map.forEach { (key, value) -> println("$key = $value") }

Kotlin特征

于 2018-04-23T04:40:49.827 回答
9

另一种没有提到的方法是:

val mapOfItems = hashMapOf(1 to "x", 2 to "y", -1 to "zz")
mapOfItems.map { (key, value) -> println("$key = $value") }
于 2020-09-15T22:29:09.480 回答
5

使用“for循环”或“forEach”或“迭代器”

 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")
    }

}
于 2021-01-11T12:05:12.110 回答