CodeGym /جاوا بلاگ /Random-SD /HashMap ۾ موجود ڪي جي قيمت کي ڪيئن تازه ڪاري ڪجي
John Squirrels
سطح
San Francisco

HashMap ۾ موجود ڪي جي قيمت کي ڪيئن تازه ڪاري ڪجي

گروپ ۾ شايع ٿيل
توهان کي خبر آهي ته هميشه HashMap يا ڪنهن ٻئي نقشي ۾ هڪ اهم ۽ قدر آهي . Key هڪ سبب لاءِ ڪيئي سڏيو ويندو آهي ڇاڪاڻ ته توهان ڪيئي ذريعي قدرن تائين رسائي حاصل ڪندا آهيو. ڪنجي منفرد آهي، پر قدر نه آهي. تنهن ڪري توهان قدر جي لحاظ کان ڪيڏي نٿا حاصل ڪري سگهو ڇو ته قدرن کي نقل ڪري سگهجي ٿو. هن آرٽيڪل ۾، اسان اهو معلوم ڪرڻ وارا آهيون ته جاوا ۾ HashMap ۾ موجود ڪيچ جي قيمت کي ڪيئن تازه ڪاري ڪجي . اچو ته ياد رکون جاوا نحو. HashMap جاوا ۾ ايندڙ رستو اعلان ڪيو ويو آهي:
HashMap<Key, Value> name
اچو ته هڪ مثال وٺون. چئو ته اسان جا چار دوست آهن ۽ خاص ڪري انهن لاءِ اسان انهن جي نالن سان هڪ HashMap ٺاهي ۽ ڀريو آهي. انهن جون ڪنجيون انٽيجر نمبر آهن.
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");
           }
       };
يا هڪ طريقو استعمال ڪندي ۽ هڪ HashMap تعمير ڪندڙ ٻئي نقشي جي دليل سان . اهو طريقو نسخو 9 ۽ بعد ۾ موجود آهي.
Map<Integer, String> names = new HashMap<>(Map.of(1, "Stan", 2, "Kyle", 3, "Kenny", 4, "Cartman"));
جيئن اسان اڳ ۾ چيو آهي ته، اسان جي HashMap ڪنجين ۾ انٽيجر نمبر آهن، ۽ قيمتن ۾ ڪجهه تار شامل آهن، اسان جي صورت ۾، ڪردارن جا نالا. خير، اچو ته چئو ته ڪيني سان ڪجهه خراب ٿيو آهي (اهي پڙهندڙ جيڪي ڄاڻن ٿا ڏکڻ پارڪ ڪارٽون سيريز، پڪ ڄاڻو ته ڪيني سان گهڻو ڪجهه خراب ٿيو آهي). تنهن ڪري جڏهن اهو ٿئي ٿو ته اسان کي هن ڪمپني مان ڪيني کي هٽائڻو پوندو (اسان جو HashMap )، ۽ هن کي ڪنهن ٻئي دوست سان تبديل ڪرڻو پوندو، چئو، بٽرس جي نالي سان. اهو ڪرڻ تمام آسان آهي ڇو ته اهو هڪ تازه ڪاري قدر آپريشن آهي. اسان جي ڪيني ڇوڪرو وٽ چاٻي آهي == 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}
ڇا اھو اھو آھي جيڪو اسان جي توقع ڪئي وئي آھي؟ هاڻي Kenny اسان جي HashMap ۾ ٻه چاٻيون آهن . چڱو، سختي سان ڳالهائڻ، اهي ٻه مختلف ڪيني آهن، جيڪو اسان جو مطلب آهي، ڇو ته اسان جو اعتراض منفرد طور تي ڪيئي طرفان طئي ڪيو ويو آهي. اهو هڪ شخص جي پاسپورٽ وانگر آهي، اهو منفرد هجڻ گهرجي. تنهن ڪري توهان صرف هڪ ڀيرو سڌو شامل ڪيل هيش ميپ ڪي جو نالو تبديل يا تازه ڪاري نٿا ڪري سگهو. هي آپريشن صرف دستياب ناهي. تنهن هوندي به، توهان ڪري سگهو ٿا هڪ گمراهه ڪندڙ چال: نئين داخل ڪريو نئين چيڪ سان ۽ پراڻي کي حذف ڪريو. اهو استعمال ڪري سگهجي ٿو HashMap هٽائڻ جو طريقو. 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));
نتيجو يقينن ساڳيو ٿيندو. تنهن ڪري، جاوا HashMap ۾ هڪ چيڪ کي تبديل ڪرڻ جو واحد مناسب طريقو آهي داخلا کي ختم ڪرڻ ۽ ساڳئي قيمت کي نئين ڪيچ سان داخل ڪرڻ. توهان ان کي مختلف طريقي سان ڪري سگهو ٿا پر اهو هڪ عنصر شامل ڪرڻ ۽ ختم ڪرڻ بابت لڳ ڀڳ ساڳي ڪهاڻي هوندي.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION