Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Kotlin中迭代hashmap?_Kotlin_Kotlin Extension - Fatal编程技术网

如何在Kotlin中迭代hashmap?

如何在Kotlin中迭代hashmap?,kotlin,kotlin-extension,Kotlin,Kotlin Extension,如何在Kotlin中迭代 typealias HashMap<K, V> = HashMap<K, V> (source) typealias HashMap=HashMap(源) 没有那么难: for ((key, value) in map) { println("$key = $value") } 或 (根据相关信息进行了更新。) 对于上面的答案,请小心下面的AndroidN! 参考Java 8api,其结果是: Rejecting re-init on

如何在
Kotlin
中迭代

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

没有那么难:

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

根据相关信息进行了更新。)

对于上面的答案,请小心下面的
Android
N
! 参考
Java 8
api,其结果是:

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

Kotlin是否具有功能另一种未提及的方式是:

val mapOfItems = hashMapOf(1 to "x", 2 to "y", -1 to "zz")
mapOfItems.map { (key, value) -> println("$key = $value") }

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

fun main(args:Array){
val items=HashMap()
项目[“1”]=“美国”
项目[“2”]=“日本”
项目[“3”]=“印度”
//例如,循环
println(“\n——示例1.1——”);
对于((k,v)项){
println(“$k=$v”)
}
//每个例子
println(“\n——示例1.2——”);
items.forEach{(k,v)->
println(“$k=$v”)
}
//迭代器示例
println(“\n——示例1.3——”);
val itr=items.keys.iterator()
while(itr.hasNext()){
val key=itr.next()
val值=项目[键]
println(“${key}=$value”)
}
}

值得注意的是,第二个版本可能会在Android上引起问题,因此您可能希望使用
map.forEach{(key,value)->println($key=$value”)}
@RuckusT Boom它以什么方式引起问题?Android没有(或在发表评论时没有)完全支持Java 8,第二个示例是Java 8调用。使用Kotlin destructuring的等效调用看起来非常相似,但是在参数
{(key,value)->…}
周围需要括号。Ken Zira在他的答案中有更多的信息。我们发现@RuckusT Boom的方法在Android上更好:)(由于一个ClassNotFoundException,我们很难弄清楚)@RuckusT Boom的答案是正确的,我们在不同API级别的发布测试中遇到了这个问题,并且不太清楚它为什么会崩溃,错误信息也是误导是的,我也在这上面浪费了半天。for((key,val)…)解决了这个问题。
Rejecting re-init on previously-failed class java.lang.Class<T>
map.forEach { (key, value) -> println("$key = $value") }
val mapOfItems = hashMapOf(1 to "x", 2 to "y", -1 to "zz")
mapOfItems.map { (key, value) -> println("$key = $value") }
 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")
    }

}