कैसे कोटलिन में हैशमैप पर पुनरावृति करें?


93

कैसे खत्म हो पुनरावृत्ति करने के लिए HashMap में Kotlin?

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

जवाबों:


213

यह उतना मुश्किल नहीं है:

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

या
( @ RuckusT-Boom's और @ KenZira की जानकारी के अनुसार अपडेट किया गया ।)

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

38
यह ध्यान देने योग्य है कि दूसरा संस्करण एंड्रॉइड पर समस्याएं पैदा कर सकता है, इसलिए आप उपयोग करना चाहते हैंmap.forEach { (key, value) -> println("$key = $value") }
रूकस टी-बूम

1
@ RuckusT- बूम किस तरह से मुद्दों का कारण बनता है?
एनिफ

7
एंड्रॉइड जावा 8 के लिए पूर्ण समर्थन नहीं करता (या उस टिप्पणी के समय नहीं था), और दूसरा उदाहरण जावा 8 कॉल है। कोटलिन विनाशकारी का उपयोग करते हुए समान कॉल बहुत समान दिखता है, लेकिन आपको तर्कों के चारों ओर कोष्ठक की आवश्यकता होती है { (key, value) -> ... }। केन जीरा के पास अपने उत्तर में अधिक जानकारी है।
रूकस टी-बूम

1
हमें पता चला कि कठिन रास्ता @ RuckusT-Boom का तरीका Android पर बेहतर है :) (ClassNotFoundException के कारण हम कठिन समय का पता लगाते हैं)
Micha

1
@ RuckusT-Boom का उत्तर सही है, हमारे पास यह मुद्दा विभिन्न एपीआई स्तरों पर रिलीज परीक्षणों के दौरान था, और यह बहुत स्पष्ट नहीं था कि यह क्यों दुर्घटनाग्रस्त हो रहा था, त्रुटि संदेश भी भ्रामक है
Alaa Eddine Cherbun

64

उपरोक्त उत्तर के लिए, Androidनीचे के साथ सावधान रहें N!

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

Java 8आपी के संदर्भ में :

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

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

है Kotlinसुविधा


हां, मैंने इस पर भी आधा दिन बर्बाद किया। के लिए ((कुंजी, वैल) ...) इस मुद्दे को हल किया।
andude

2

एक और तरीका जिसका उल्लेख नहीं किया गया है:

val mapOfItems = hashMapOf(1 to "x", 2 to "y", -1 to "zz")
mapOfItems.map { (key, value) -> println("$key = $value") }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.