CodeGym /Java Blog /यादृच्छिक /हॅशमॅपमध्ये विद्यमान कीचे मूल्य कसे अद्यतनित करावे
John Squirrels
पातळी 41
San Francisco

हॅशमॅपमध्ये विद्यमान कीचे मूल्य कसे अद्यतनित करावे

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले
तुम्हाला माहित आहे की हॅशमॅप किंवा इतर कोणत्याही नकाशामध्ये नेहमीच एक की आणि मूल्य असते . कीला कारणास्तव की म्हटले जाते कारण तुम्हाला किल्लीद्वारे मूल्यांमध्ये प्रवेश मिळतो. की अद्वितीय आहे, परंतु मूल्य नाही. त्यामुळे तुम्हाला मूल्यानुसार की मिळू शकत नाही कारण मूल्ये डुप्लिकेट केली जाऊ शकतात. या लेखात, आम्ही जावामधील हॅशमॅपमधील विद्यमान कीचे मूल्य कसे अपडेट करायचे ते शोधणार आहोत . जावा सिंटॅक्स लक्षात ठेवूया. Java मधील हॅशमॅप पुढील मार्गाने घोषित केले आहे:

 HashMap<Key, Value> name
एक उदाहरण घेऊ. म्हणा, आमचे चार मित्र आहेत आणि विशेषत: त्यांच्यासाठी आम्ही त्यांच्या नावांसह हॅशमॅप तयार केला आणि भरला. त्यांच्या की पूर्णांक संख्या आहेत.

Map<Integer, String> names = new HashMap<Integer, String>();
       names.put(1, "Stan");
       names.put(2, "Kyle");
       names.put(3, "Kenny");
       names.put(4, "Cartman");
टीप: तुम्ही तुमचा नकाशा वेगवेगळ्या प्रकारे तयार करू शकता आणि भरू शकता . उदाहरणार्थ, इनिशिएलायझेशन ब्लॉक वापरणे. येथे आहे:

Map<Integer, String> names = new HashMap<Integer, String>() {
           {
               put(1, "Stan");
               put(2, "Kyle");
               put(3, "Kenny");
               put(4, "Cartman");
           }
       };
किंवा इतर नकाशा युक्तिवादासह एक पद्धत आणि हॅशमॅप कन्स्ट्रक्टर वापरणे . ही पद्धत आवृत्ती 9 आणि नंतर उपलब्ध आहे.

Map<Integer, String> names = new HashMap<>(Map.of(1, "Stan", 2, "Kyle", 3, "Kenny", 4, "Cartman"));
आम्ही आधी म्हटल्याप्रमाणे, आमच्या हॅशमॅप की मध्ये पूर्णांक संख्या आहेत आणि मूल्यांमध्ये काही स्ट्रिंग आहेत, आमच्या बाबतीत, वर्णांची नावे. बरं, केनीचं काहीतरी वाईट झालं असं म्हणूया (ज्या वाचकांना साऊथ पार्क कार्टून मालिका माहीत आहे, त्यांना खात्री आहे की केनीसोबत अनेकदा काहीतरी वाईट घडलं आहे). म्हणून जेव्हा असे घडते तेव्हा आम्हाला केनीला या कंपनीतून (आमचे हॅशमॅप ) काढून टाकावे लागेल आणि त्याच्या जागी दुसरा मित्र घ्यावा लागेल, म्हणा, बटर्स नावाने. हे करणे खूप सोपे आहे कारण ते अद्यतन मूल्य ऑपरेशन आहे. आमच्या केनी मुलाकडे की == 3 आहे . आम्हाला की 3 चे मूल्य बदलणे आवश्यक आहे, जेथे केनी स्थित आहे. हे करण्यासाठी आपण put() पद्धत वापरू शकतो :

names.put(3, "Butters");
या प्रकरणात, आम्ही आमचा नकाशा स्क्रीनवर प्रदर्शित केल्यास, परिणाम खालीलप्रमाणे असेल:

{1=Stan, 2=Kyle, 3=Butters, 4=Cartman}
केनीसह सर्व काही ठीक असल्यास आणि आम्ही त्याला कंपनीत ठेवू इच्छित असल्यास, परंतु आमच्याकडे त्याची की अद्यतनित करण्याचे कारण आहे? म्हणा, तो आता तिसरा नाही तर पाचवा क्रमांक आहे. की 5 सह केनी पुन्हा आमच्या नकाशावर ठेवू आणि परिणाम मुद्रित करू. आपण पुट पद्धत चांगल्या प्रकारे वापरू शकतो . या उदाहरणासाठी संपूर्ण कोड येथे आहे:

import java.util.HashMap;

public class HashMapUpdKey {
   public static void main(String[] args) {
       Map<Integer, String> names = new HashMap<>(Map.of(1, "Stan", 2, "Kyle", 3, "Kenny", 4, "Cartman"));
       names.put(5, "Kenny");
       System.out.println(names);
   }
}
परिणाम काय असेल याचा अंदाज तुम्ही आधीच लावला असेल:

{1=Stan, 2=Kyle, 3=Kenny, 4=Cartman, 5=Kenny}
आमच्याकडून ही अपेक्षा होती का? आता केनीकडे आमच्या हॅशमॅपमध्ये दोन की आहेत . बरं, काटेकोरपणे बोलायचं झालं तर, हे दोन भिन्न केनी आहेत, आपला अर्थ काहीही असो, कारण आपला ऑब्जेक्ट कीद्वारे विशिष्टपणे निर्धारित केला जातो. हे एखाद्या व्यक्तीच्या पासपोर्टसारखे आहे, ते अद्वितीय असले पाहिजे. त्यामुळे तुम्ही हॅशमॅप की थेट जोडल्यानंतर त्याचे नाव बदलू किंवा अपडेट करू शकत नाही. हे ऑपरेशन फक्त उपलब्ध नाही. तथापि, आपण एक फसवी युक्ती करू शकता: नवीन कीसह नवीन प्रविष्टी घाला आणि जुनी हटवा. हे हॅशमॅप काढण्याची पद्धत वापरून करता येते . remove() केवळ असोसिएशन काढून टाकत नाही तर हटवलेले मूल्य देखील परत करते (जर ते आधी होते). चला या ऑपरेशनसह आमचे उदाहरण पूरक करूया:

//easy replacement example
import java.util.HashMap;

public class HashMapUpdKey {
   public static void main(String[] args) {
      Map<Integer, String> names = new HashMap<>(Map.of(1, "Stan", 2, "Kyle", 3, "Kenny", 4, "Cartman"));
           
       names.put(5, "Kenny"); //Adding “new” Kenny 
       System.out.println(names.remove(3)); //Update value of the key: Removing “old” Kenny and print out deleted value

       System.out.println(names);
   }
}
आता आम्हाला जे हवे होते ते मिळाले, की अपडेट केली ज्याद्वारे आम्ही केनी शोधू शकतो. येथे आउटपुट आहे:
केनी {1=स्टॅन, 2=काईल, 4=कार्टमॅन, 5=केनी}
अर्थात, आम्ही "जुने" केनी काढून टाकणे आणि कोणत्याही क्रमाने नवीन जोडण्याचे ऑपरेशन करू शकतो. ते मूलत: स्वतंत्र आहेत. किंवा फक्त एक ओळ वापरून तुमचा कोड लहान करा:

names.put(5, names.remove(3));
परिणाम निश्चितपणे समान असेल. तर, Java HashMap मधील की बदलण्याचा एकमेव योग्य मार्ग म्हणजे एंट्री हटवणे आणि नवीन कीसह समान मूल्य समाविष्ट करणे. तुम्ही ते वेगळ्या प्रकारे करू शकता परंतु घटक जोडणे आणि काढून टाकणे ही जवळजवळ समान कथा असेल.
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION