हाय दिया मैं हैइस तरह एक नक्शे के मानचित्र में महत्वपूर्ण ढूँढना, मूल्य
[this:0, is:1, a:2, file:3, anotherkey:4, aa:5]
मैं मैं key
एक नक्शे के value
दिया मिल सकता है चाहता हूँ। उदाहरण के लिए, यदि मान 5
दिया गया है तो मुझे मानचित्र से aa
वापस करने की आवश्यकता है।
क्या यह संभव है?
नहीं, आपका कोड दिलचस्प है :) लेकिन प्रदर्शन हत्यारा क्योंकि आप एक और मानचित्र फिर से बनाते हैं। नक्शा प्रविष्टि को मानने के लिए एक तरीका है, सही उत्तर महामारी द्वारा लंबे समय पहले दिया गया है: myMap.find {it.value == 5} .key – ARA
@ARA वास्तव में बार-बार उपयोग के लिए crazy4groovy का समाधान तेजी से होगा जब तक उलटा संग्रह हर बार पुनर्निर्मित नहीं किया जाता है। जब आप O (logN) पर मानचित्र का उपयोग कर सकते हैं तो आपको एक सूची ओ (एन) पर पुनरावृत्ति नहीं करना चाहिए। बेशक, प्रदर्शन को वैसे भी पठनीयता के लिए बैक-सीट लेनी चाहिए - और यदि सही हो तो पागल 4groovy का समाधान शायद अधिक पठनीय है ... हालांकि यह बहुत "ग्रोवी" नहीं है :) –
@ बिल: हाँ, मैंने जो कहा है प्रदर्शन हत्यारा हर बार नक्शे को फिर से बनाने के लिए है उदाहरण के लिए जो लम्बाडा का उपयोग फ्लाई पर फिर से बनाने के लिए करता है। बेशक यदि नक्शा प्रत्येक कॉल पर बनाए रखा नहीं जाता है और बनाए रखा जाता है, तो यह पुनरावृत्ति से बहुत तेज होगा। यह मानचित्र का उद्देश्य है। :) और मुझे लगता है कि मानचित्र ओ (1) ओ (लॉग (एन) नहीं कहा जाता है, एक btree ओ (लॉग (एन)) होगा? – ARA