CodeGym /جاوا بلاگ /Random-UR /HashMap میں موجودہ کلید کی قدر کو کیسے اپ ڈیٹ کریں۔
John Squirrels
سطح
San Francisco

HashMap میں موجودہ کلید کی قدر کو کیسے اپ ڈیٹ کریں۔

گروپ میں شائع ہوا۔
آپ جانتے ہیں کہ HashMap یا کسی دوسرے Map میں ہمیشہ ایک کلید اور قدر ہوتی ہے ۔ کلید کو ایک وجہ سے کلید کہا جاتا ہے کیونکہ آپ کو کلید کے ذریعہ اقدار تک رسائی حاصل ہوتی ہے۔ کلید منفرد ہے، لیکن قدر نہیں ہے. لہذا آپ قدر کے لحاظ سے کلید حاصل نہیں کرسکتے ہیں کیونکہ اقدار کو نقل کیا جاسکتا ہے۔ اس مضمون میں، ہم جاوا میں HashMap میں موجود کلید کی قدر کو اپ ڈیٹ کرنے کا طریقہ معلوم کرنے جا رہے ہیں ۔ آئیے جاوا نحو کو یاد رکھیں۔ جاوا میں HashMap کو اگلا طریقہ قرار دیا گیا ہے:
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");
           }
       };
یا دوسرے نقشہ کی دلیل کے ساتھ ایک طریقہ اور 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));
نتیجہ یقیناً وہی نکلے گا۔ لہذا، جاوا ہیش میپ میں کلید کو تبدیل کرنے کا واحد مناسب طریقہ یہ ہے کہ اندراج کو حذف کریں اور ایک نئی کلید کے ساتھ وہی قدر ڈالیں۔ آپ اسے مختلف طریقے سے کر سکتے ہیں لیکن یہ ایک عنصر کو شامل کرنے اور ہٹانے کے بارے میں تقریبا ایک ہی کہانی ہوگی۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION