नक्शा एक संग्रह है जहां डेटा को कुंजी-मूल्य जोड़ी के रूप में संग्रहीत किया जाता है और संबंधित कुंजी अद्वितीय होनी चाहिए। एक हैश मैप MutableMap इंटरफ़ेस पर आधारित एक संग्रह वर्ग है और यह हैशटेबल के MutableMapinterface को लागू करके करता है। कोटलिन हैश मैप को परिभाषित करने और उसमें हेरफेर करने के लिए चार प्रकार के कंस्ट्रक्टर प्रदान करता है।
-
हैश मैप () - यह डिफॉल्ट कंस्ट्रक्टर है जो हमें खाली हैश मैप बनाने में मदद करता है।
-
HashMap (आरंभिक क्षमता:Int, loadFactor:Float =0f) - यह हमें प्रारंभिक क्षमता का उपयोग करके हैश मैप बनाने में मदद करता है; यदि यह प्रदान नहीं किया जाता है, तो इसे अनदेखा कर दिया जाएगा और यह डिफ़ॉल्ट हैश मैप () के रूप में कार्य करेगा।
-
हैश मैप (आरंभिक क्षमता:इंट) - यह हमें दी गई क्षमता के साथ हैश मैप बनाने में मदद करता है।
-
HashMap (मूल:मानचित्र <आउट K, V>) - यह मानचित्र में निर्दिष्ट हैश मैप का एक उदाहरण बनाता है।
यहां, हम HashMap() . का उपयोग करेंगे हैश मैप बनाने के लिए कंस्ट्रक्टर और उससे संबंधित Put() कुछ कुंजी-मूल्य डेटा के साथ इसे पॉप्युलेट करने के लिए। इस उदाहरण में, हम "विषय" का एक संग्रह बनाएंगे जिसमें विषय का नाम और हमारी व्यक्तिगत वरीयता संख्या होगी। हम कोटलिन लाइब्रेरी में उपलब्ध विभिन्न विकल्पों का उपयोग करके इस हैश मैप के माध्यम से पुनरावृति करेंगे।
के लिए () लूप का उपयोग करके पुनरावृति करें
पारंपरिक प्रोग्रामिंग भाषाओं में, हमारे पास for() . है किसी भी संग्रह के माध्यम से पार करने के लिए लूप। निम्नलिखित उदाहरण में, हम for() . का उपयोग करके मानचित्र को पार करेंगे लूप।
उदाहरण
फन मेन (तर्क:ऐरे <स्ट्रिंग>) {// हैश मैप वर विषय घोषित करें:हैश मैप <स्ट्रिंग, इंट> =हैश मैप <स्ट्रिंग, इंट> (); // हैश मैप विषय को मान असाइन करना। पुट ("जावा", 1); विषय.पुट ("कोटलिन", 2); विषय.पुट ("पायथन", 3); विषय.पुट ("सी ++", 4); विषय.पुट ("एसक्यूएल", 5); // लूप के लिए प्रिंट के माध्यम से पुनरावृति ("----------- लूप के लिए पुनरावृति -------------\ n") के लिए ((k, v) विषय में) { println ("विषय का नाम -> $k और इसकी वरीयता -> $v") } println("\n\n")}
आउटपुट
एक बार जब आप कोड निष्पादित करते हैं, तो यह निम्न आउटपुट उत्पन्न करेगा -
$kotlinc -nowarn main.kt -include-runtime -d main.jar$java -Xmx128M -Xms16M -jar main.jar-------- लूप के लिए उपयोग करके पुनरावृति करें------ ----- विषय का नाम -> जावा और इसकी वरीयता -> 1 विषय का नाम -> सी ++ और इसकी वरीयता -> 4 विषय का नाम -> कोटलिन और इसकी वरीयता -> 2 विषय का नाम -> पायथन और इसकी वरीयता -> 3 विषय का नाम -> एसक्यूएल और इसकी वरीयता -> 5
ForEach() लूप का उपयोग करके पुनरावृति करें
for() लूप के अलावा, हम एक संग्रह के माध्यम से प्रचार करने के लिए ForEach() का भी उपयोग कर सकते हैं। निम्नलिखित उदाहरण में, हम forEach() लूप का उपयोग करके मानचित्र को पार करेंगे।
उदाहरण
फन मेन (तर्क:ऐरे <स्ट्रिंग>) {// हैश मैप वर विषय घोषित करें:हैश मैप <स्ट्रिंग, इंट> =हैश मैप <स्ट्रिंग, इंट> (); // हैश मैप विषय को मान असाइन करना। पुट ("जावा", 1); विषय.पुट ("कोटलिन", 2); विषय.पुट ("पायथन", 3); विषय.पुट ("सी ++", 4); विषय.पुट ("एसक्यूएल", 5); // प्रत्येक प्रिंट के लिए उपयोग करके पुनरावृति करें ("------ प्रत्येक विधि के लिए पुनरावृति का उपयोग करें -------------\ n") विषय। प्रत्येक के लिए {(k, v) -> println ("विषय का नाम -> $ k और इसकी वरीयता -> $v") } println("\n\n")}
आउटपुट
एक बार जब आप कोड निष्पादित करते हैं, तो यह निम्न आउटपुट उत्पन्न करेगा -
$kotlinc -nowarn main.kt -include-runtime -d main.jar$java -Xmx128M -Xms16M -jar main.jar------ प्रत्येक विधि के लिए पुनरावृति का उपयोग करना -------- विषय नाम -> जावा और इसकी वरीयता -> 1 विषय का नाम -> सी ++ और इसकी वरीयता -> 4 विषय का नाम -> कोटलिन और इसकी वरीयता -> 2 विषय का नाम -> पायथन और इसकी वरीयता -> 3 विषय का नाम -> एसक्यूएल और इसकी वरीयता -> 5
iterator() विधि का उपयोग करना
संग्रह को पार करने के उपरोक्त पारंपरिक तरीकों के अलावा, कोटलिन मानक पुस्तकालय iterator() नामक एक फ़ंक्शन भी प्रदान करता है। जिसका उपयोग हम किसी संग्रह में वस्तुओं के मूल्य को उजागर किए बिना एक्सेस करने के लिए कर सकते हैं। यह संग्रह के सभी मूल्यों तक पहुँचने का सबसे कारगर तरीका है। निम्नलिखित उदाहरण में, हम iterator() . का उपयोग करके हैशमैप को पार करेंगे विधि।
उदाहरण
फन मेन (तर्क:ऐरे <स्ट्रिंग>) {// हैश मैप वर विषय घोषित करें:हैश मैप <स्ट्रिंग, इंट> =हैश मैप <स्ट्रिंग, इंट> (); // हैश मैप विषय को मान असाइन करना। पुट ("जावा", 1); विषय.पुट ("कोटलिन", 2); विषय.पुट ("पायथन", 3); विषय.पुट ("सी ++", 4); विषय.पुट ("एसक्यूएल", 5); // iterator () विधि का उपयोग करना println ("----------- iterator का उपयोग करना () विधि -----------\n") वैल i =topic.keys.iterator( ) जबकि (i.hasNext ()) {वैल कुंजी =i.next () वैल वैल्यू =विषय [कुंजी] प्रिंट्लन ("विषय का नाम -> $ {कुंजी} और इसकी वरीयता -> $ मूल्य")}} पूर्व>आउटपुट
एक बार जब आप कोड निष्पादित करते हैं, तो यह निम्न आउटपुट उत्पन्न करेगा -
$kotlinc -nowarn main.kt -include-runtime -d main.jar$java -Xmx128M -Xms16M -jar main.jar----------- iterator() विधि का उपयोग करना ---- ------- विषय का नाम -> जावा और इसकी वरीयता -> 1 विषय का नाम -> सी ++ और इसकी वरीयता -> 4 विषय का नाम -> कोटलिन और इसकी वरीयता -> 2 विषय का नाम -> पायथन और इसकी वरीयता -> 3 विषय का नाम -> SQL और उसकी प्राथमिकता -> 5