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


উত্তর:


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.