কীভাবে কোটলিনে হ্যাশম্যাপে পুনরাবৃত্তি হবে?


উত্তর:


212

এটি এতটা কঠিন নয়:

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

বা
( @ রকুসটি-বুম এবং @ কেনজিরার তথ্য অনুসারে আপডেট হয়েছে ))

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

38
এটি দ্বিতীয় সংস্করণে লক্ষ্য করার মতো বিষয় যা অ্যান্ড্রয়েডে সমস্যা সৃষ্টি করতে পারে তাই আপনি ব্যবহার করতে পারেনmap.forEach { (key, value) -> println("$key = $value") }
Ruckus T-Boom

4
@ রকুসটি-বুম কীভাবে এটি সমস্যার সৃষ্টি করে?
অ্যানিগিফ

7
অ্যান্ড্রয়েড জাভা 8 এর জন্য সম্পূর্ণ সমর্থন নেই (বা মন্তব্যের সময় নয়), এবং দ্বিতীয় উদাহরণটি জাভা 8 কল। কোটলিন ডেস্ট্রাকচার ব্যবহার করে সমান কলটি দেখতে খুব একই রকম লাগে তবে আপনার যুক্তিগুলির চারপাশে বন্ধনী প্রয়োজন { (key, value) -> ... }। কেন জিরার উত্তরটিতে আরও তথ্য রয়েছে।
রুকাস টি-বুম

4
আমরা কঠোর উপায় যে @ RuckusT-বুম পথ অ্যান্ড্রয়েড :) আরও ভাল (কারণে ClassNotFoundException আমরা কঠোর একটি কঠিন সময় figuring আউট করার জন্য) হয় খুঁজে পাওয়া যায় নি
Micha

4
@ রকুসটি-বুমের উত্তরটি সঠিক, আমরা বিভিন্ন এপিআই স্তরে প্রকাশের পরীক্ষার সময় এই সমস্যাটি প্রকাশ করেছি এবং কেন এটি ক্র্যাশ হচ্ছিল তা খুব স্পষ্ট ছিল না, ত্রুটির বার্তাটিও বিভ্রান্তিকর
আলা এডডিন চেরবিব

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") }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.