如何在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")
}
}