جاوا میں ہیش میپ اور ہیش ٹیبل کے درمیان فرق
مواد
ہاشمیپ اور ہیش ٹیبل ، دونوں ایک کی نمائندگی کے لئے استعمال ہوتے ہیں اشیاء کا گروپ جس میں نمائندگی کی جاتی ہے
ہش میپ اور ہیش ٹیبل کے درمیان کچھ اور فرق جاننے کے لئے ذیل میں دکھائے گئے موازنہ چارٹ پر نظارہ کریں۔
- موازنہ چارٹ
- تعریف
- کلیدی اختلافات
- مماثلت
- نتیجہ اخذ کرنا
موازنہ چارٹ
موازنہ کی بنیاد | ہش میپ | ہیش ٹیبل |
---|---|---|
نافذ کرنا / بڑھانا | ہش میپ کلاس میپ انٹرفیس کو نافذ کرتی ہے اور ایک تجریدی نقشہ کی کلاس میں توسیع کرتی ہے۔ | ہیش ٹیبل میں لغت لیسیسی کلاس میں توسیع ہے لیکن ، یہ دوبارہ انجینئر ہے اور اب یہ نقشہ انٹرفیس کو بھی نافذ کرتی ہے۔ |
ہم وقت سازی | ہش میپ غیر منظم ہے ، اور اسی وجہ سے ، ہش میپ آبجیکٹ محفوظ نہیں ہے۔ | ہیش ٹیبل مطابقت پذیر ہے ، اور اسی وجہ سے ہیش ٹیبل کا مقصد دھاگہ محفوظ ہے۔ |
چابیاں / قدر | ایک کلید نول کو صرف ایک بار لوٹ سکتی ہے ، لیکن ایک قدر سے نال کو بے شمار وقت واپس مل سکتا ہے۔ | ایک کلید نول کو واپس نہیں کرسکتا ہے کیونکہ یہ ہیش کوڈ حاصل کرنے کے لئے استعمال ہوتا ہے جو ہیش ٹیبل کے اشاریہ کے طور پر استعمال ہوگا ، اور نہ ہی کوئی قیمت نول کو واپس کرسکتی ہے۔ |
ڈیفالٹ ابتدائی صلاحیت | ہش میپ کی پہلے سے طے شدہ ابتدائی صلاحیت 16 ہے۔ | ہیش ٹیبل کی پہلے سے طے شدہ ابتدائی گنجائش 11 ہے۔ |
سیر کرنا | ہش میپ Iterator کے ذریعے سے گزر جاتا ہے۔ | نقشہ کلاس کی طرح ہیش ٹیبل بھی سیدھے سراغ لگانے کے لte آئٹوریٹر کی مدد نہیں کرتا ہے اور اسی وجہ سے ، یہ عنصر استعمال کرتا ہے۔ |
ہش میپ کی تعریف
ہش میپ ایک کلاس ہے جو اس پر عمل درآمد کرتی ہے نقشہ انٹرفیس اور توسیع خلاصہ نقشہ کلاس ہیش ٹیبل کا استعمال کرتی ہے۔ ہش میپ کا اعتراض کسی مجموعہ / سیٹ سے مراد ہے / * K کلید کی نمائندگی کرتا ہے ، اور V قدر * / کلاس ہیش میپ کی نمائندگی کرتا ہے پہلا کنسٹرکٹر ڈیفالٹ کنسٹرکٹر ہے جو 16 کی ڈیفالٹ گنجائش اور 0.75 کی ڈیفالٹ فل ریشو کے ساتھ ہاش میپ کے خالی شے کو شروع کرتا ہے۔ دوسرا کنسٹرکٹر ہیش کا نقشہ ایم کی قیمت کے ساتھ شروع کرتا ہے۔ تیسرا تعمیر کنندہ ابتدائی گنجائش کے ساتھ ہیش کا نقشہ تیار کرتا ہے جو دلیل "گنجائش" میں فراہم کردہ قدر کے مطابق ہے۔ چوتھا کنسٹرکٹر پیرامیٹرز میں فراہم کردہ گنجائش اور بھرنے کے تناسب کے ساتھ ہیش میپ کا آغاز کرتا ہے۔ آئیے اب ہیش کے نقشے میں اندراجات کو کھانا کھلانے کا طریقہ سیکھیں۔ ہشمپ hm = نیا ہاشمپ ()؛ hm.put ("اجے" ، 275)؛ hm.put ("وجے" ، 250)؛ hm.put ("جونی"، 150)؛ hm.put ("اردن"، 200)؛ System.out.ln (hm)؛ / * آؤٹ پٹ * / {وجئے = 250 ، جونی = 150 ، اجے = 275 ، اردن = 200 مذکورہ کوڈ میں ، آپ دیکھ سکتے ہیں کہ میں نے خالی ہش میپ آبجیکٹ تخلیق کیا ہے hm ڈیفالٹ ابتدائی صلاحیت اور پہلے سے طے شدہ بھرنے کے تناسب کے ساتھ۔ اس کے بعد میں نے (K، V) طریقہ استعمال کرکے ہیش کے نقشے میں چار اندراجات داخل کیں جو قدر کی کلید کو نقشہ بنائیں۔ آپ مشاہدہ کر سکتے ہیں کہ اندراجات تسلسل کے مطابق نہیں ہیں جس کی آپ انہیں کھانا کھاتے ہیں کیونکہ داخل کرنے کا آرڈر طے نہیں ہوتا ہے۔ اب ، ایک ایسے معاملے پر غور کریں جو آپ کے پاس پہلے ہی داخل ہے ہیش ٹیبل ایک کلاس ہے جو اس میں اضافہ کرتی ہے لغت کلاس جو میراثی کلاس ہے اور اس کو نافذ کرنے کے لئے نئے سرے سے تیار کی گئی ہے نقشہ انٹرفیس. ہیش ٹیبل اپنے ڈیٹا کی ساخت کے طور پر ہیش ٹیبل کا استعمال کرتا ہے۔ ہیش ٹیبل ہیش میپ کی طرح ہی ہے کیوں کہ یہاں بھی ہیش ٹیبل کا مقصد اندراجات کے جمع کرنے سے مراد ہے جہاں ہر اندراج کا جوڑا ہوتا ہے / * K کلید کی وضاحت کرتا ہے اور V کلید * / کلاس ہیش ٹیبل سے وابستہ قدر کی وضاحت کرتا ہے مذکورہ کوڈ میں ، پہلا کنسٹرکٹر ڈیفالٹ کنسٹرکٹر ہے جو کلاس ہیش ٹیبل کی خالی شے تیار کرتا ہے ، اس کا ڈیفالٹ سائز 11 ہے اور ڈیفالٹ فل ریشو 0.75 ہے۔ دوسرا کنسٹرکٹر ہیش ٹیبل تیار کرتا ہے جس کے سائز میں پیرامیٹر "سائز" میں فراہم کردہ ویلیو کے مطابق ہے۔ تیسرا کنسٹرکٹر ایک ہیش ٹیبل تیار کرتا ہے جس کے ساتھ پیرامیٹر میں ایک سائز اور فل ریشو دیا جاتا ہے۔ چوتھا کنسٹرکٹر ہیش ٹیبل کو ایم ویلیو ایم کے ساتھ شروع کرتا ہے۔ آئیے اب سیکھتے ہیں کہ کس طرح ڈالیں ہیش ٹیبل ht = نیا ہیش ٹیبل ()؛ ht.put (نیا ہیش کوڈ (2)، 275)؛ ht.put (نیا ہیش کوڈ (12)، 250)؛ ht.put (نیا ہیش کوڈ (16)، 150)؛ ht.put (نیا ہیش کوڈ (8)، 200)؛ System.out.ln (ht)؛ / * آؤٹ پٹ * / {12 = 250 ، 16 = 150،2y = 275 ، 8 = 200 مذکورہ کوڈ میں ، میں نے ہیش ٹیبل کا خالی آبجیکٹ تیار کیا اور پوٹ () طریقہ استعمال کرکے چار اندراجات داخل کیں۔ اس کے اندر ڈالے ہوئے طریقے کو میں نے ہیش کوڈ () کہا ہے جو حساب کرتا ہے اور ہیش کوڈ کی قیمت واپس کرتا ہے جو اندراج آبجیکٹ کے لئے اشاریہ قیمت کی حیثیت سے کام کرے گا۔ جیسا کہ آپ دیکھ سکتے ہیں کہ میں نے ہیش ٹیبل کے سائز کا ذکر نہیں کیا لہذا یہ پہلے سے طے شدہ طور پر 11 ہوگا۔ یہاں بھی ، داخل کرنے کا آرڈر محفوظ نہیں ہے اور اسی وجہ سے ، جب ایڈ انٹریز تسلسل میں ظاہر نہیں ہوتی تھیں تو اسے کھلایا جاتا تھا۔ کارکردگی میں ہش میپ بہتر ہے کیونکہ اس کی اشیاء ناقابل تسخیر ہیں اور ایک ہی وقت میں ایک سے زیادہ تھریڈز کام کرسکتی ہیں لہذا ، یہ ہیش ٹیبل سے تیز ہے۔
ہیش ٹیبل کی تعریف
مماثلت:
نتیجہ: