جاوا میں ہیش میپ اور ہیش ٹیبل کے درمیان فرق

مصنف: Laura McKinney
تخلیق کی تاریخ: 2 اپریل 2021
تازہ کاری کی تاریخ: 5 مئی 2024
Anonim
Ethical Hacking Full Course - Learn Ethical Hacking in 10 Hours | Ethical Hacking Tutorial | Edureka
ویڈیو: Ethical Hacking Full Course - Learn Ethical Hacking in 10 Hours | Ethical Hacking Tutorial | Edureka

مواد


ہاشمیپ اور ہیش ٹیبل ، دونوں ایک کی نمائندگی کے لئے استعمال ہوتے ہیں اشیاء کا گروپ جس میں نمائندگی کی جاتی ہے جوڑا۔ ہر ایک جوڑا کہا جاتا ہے اندراج اعتراض جمع اندراجات کا اشارہ ہیش میپ اور ہیش ٹیبل کے ذریعہ کیا جاتا ہے۔ مجموعہ میں موجود کلیدیں انفرادیت یا مخصوص ہیں۔ ہیش میپ اور ہیش ٹیبل کے درمیان فرق یہ ہے ہش میپ خاص طور پر نقشہ انٹرفیس کو لاگو کرتا ہے ، جبکہ ہیش ٹیبل لغت کلاس (لیگیسی کلاس) میں توسیع کرتا ہے جسے نقشہ انٹرفیس کو نافذ کرنے کے لئے دوبارہ تیار کیا جاتا ہے۔ دوسرا اہم فرق یہ ہے کہ ہش میپ کی اشیاء ہیں غیر تسلیم شدہ جبکہ ، ہیش ٹیبل کی اشیاء ہے ہم وقت ساز.

ہش میپ اور ہیش ٹیبل کے درمیان کچھ اور فرق جاننے کے لئے ذیل میں دکھائے گئے موازنہ چارٹ پر نظارہ کریں۔

  1. موازنہ چارٹ
  2. تعریف
  3. کلیدی اختلافات
  4. مماثلت
  5. نتیجہ اخذ کرنا

موازنہ چارٹ

موازنہ کی بنیادہش میپہیش ٹیبل
نافذ کرنا / بڑھاناہش میپ کلاس میپ انٹرفیس کو نافذ کرتی ہے اور ایک تجریدی نقشہ کی کلاس میں توسیع کرتی ہے۔ہیش ٹیبل میں لغت لیسیسی کلاس میں توسیع ہے لیکن ، یہ دوبارہ انجینئر ہے اور اب یہ نقشہ انٹرفیس کو بھی نافذ کرتی ہے۔
ہم وقت سازیہش میپ غیر منظم ہے ، اور اسی وجہ سے ، ہش میپ آبجیکٹ محفوظ نہیں ہے۔ہیش ٹیبل مطابقت پذیر ہے ، اور اسی وجہ سے ہیش ٹیبل کا مقصد دھاگہ محفوظ ہے۔
چابیاں / قدرایک کلید نول کو صرف ایک بار لوٹ سکتی ہے ، لیکن ایک قدر سے نال کو بے شمار وقت واپس مل سکتا ہے۔ایک کلید نول کو واپس نہیں کرسکتا ہے کیونکہ یہ ہیش کوڈ حاصل کرنے کے لئے استعمال ہوتا ہے جو ہیش ٹیبل کے اشاریہ کے طور پر استعمال ہوگا ، اور نہ ہی کوئی قیمت نول کو واپس کرسکتی ہے۔
ڈیفالٹ ابتدائی صلاحیتہش میپ کی پہلے سے طے شدہ ابتدائی صلاحیت 16 ہے۔ہیش ٹیبل کی پہلے سے طے شدہ ابتدائی گنجائش 11 ہے۔
سیر کرناہش میپ Iterator کے ذریعے سے گزر جاتا ہے۔نقشہ کلاس کی طرح ہیش ٹیبل بھی سیدھے سراغ لگانے کے لte آئٹوریٹر کی مدد نہیں کرتا ہے اور اسی وجہ سے ، یہ عنصر استعمال کرتا ہے۔


ہش میپ کی تعریف

ہش میپ ایک کلاس ہے جو اس پر عمل درآمد کرتی ہے نقشہ انٹرفیس اور توسیع خلاصہ نقشہ کلاس ہیش ٹیبل کا استعمال کرتی ہے۔ ہش میپ کا اعتراض کسی مجموعہ / سیٹ سے مراد ہے جوڑی جہاں ہر کلید کو ایک خاص قدر کے ساتھ نقش کیا جاتا ہے۔ کسی مجموعہ میں کلیدیں انفرادیت کی حامل ہونگی کیوں کہ وہ قدر کو بازیافت کرنے کے لئے استعمال ہوتی ہیں۔ دوسری طرف ، ایک مجموعہ میں قدریں نقل کی جاسکتی ہیں۔ ہش میپ کلاس کا اعلان اور ہیش میپکلاس کے کنسٹرکٹرز مندرجہ ذیل ہیں:

/ * K کلید کی نمائندگی کرتا ہے ، اور V قدر * / کلاس ہیش میپ کی نمائندگی کرتا ہے / * ہیش میپ کلاس کے کنسٹرکٹر * / ہیش میپ () ہش میپ (نقشہ <؟ میں K ،؟ V> M توسیع کرتا ہے) ہیش میپ (انٹریٹ صلاحیت) ہش میپ (انٹریٹ صلاحیت ، فلوٹ فل ریشو)

پہلا کنسٹرکٹر ڈیفالٹ کنسٹرکٹر ہے جو 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) طریقہ استعمال کرکے ہیش کے نقشے میں چار اندراجات داخل کیں جو قدر کی کلید کو نقشہ بنائیں۔ آپ مشاہدہ کر سکتے ہیں کہ اندراجات تسلسل کے مطابق نہیں ہیں جس کی آپ انہیں کھانا کھاتے ہیں کیونکہ داخل کرنے کا آرڈر طے نہیں ہوتا ہے۔ اب ، ایک ایسے معاملے پر غور کریں جو آپ کے پاس پہلے ہی داخل ہے ہیش کے نقشے میں اور اس کے بعد آپ (K1، V5) ڈالنے کی کوشش کرتے ہیں ، یعنی آپ اسی کلید کو مختلف قدر کے ساتھ نقشہ بنانے کی کوشش کرتے ہیں۔ پھر ڈالنے کا طریقہ کار پرانی قدر V1 کو نئی قیمت V2 سے بدل دے گا اور پرانی قدر V1 کو واپس کردے گا ، بصورت دیگر ، اگر ہم کبھی بھی کسی کلید کی قدر کو تبدیل کرنے کی کوشش نہیں کرتے ہیں تو پھر اس طریقہ کار سے اس کلید کے لئے کال ضائع ہوجاتی ہے۔

ہیش ٹیبل کی تعریف

ہیش ٹیبل ایک کلاس ہے جو اس میں اضافہ کرتی ہے لغت کلاس جو میراثی کلاس ہے اور اس کو نافذ کرنے کے لئے نئے سرے سے تیار کی گئی ہے نقشہ انٹرفیس. ہیش ٹیبل اپنے ڈیٹا کی ساخت کے طور پر ہیش ٹیبل کا استعمال کرتا ہے۔ ہیش ٹیبل ہیش میپ کی طرح ہی ہے کیوں کہ یہاں بھی ہیش ٹیبل کا مقصد اندراجات کے جمع کرنے سے مراد ہے جہاں ہر اندراج کا جوڑا ہوتا ہے . دوسری طرف مجموعہ کی تمام چابیاں منفرد ہونی چاہئیں ، اقدار کو نقل کیا جاسکتا ہے۔ چابیاں خاص طور پر ہیش کوڈ ویلیو حاصل کرنے کے لئے استعمال کی جاتی ہیں جو انڈیکس کا فیصلہ کرتی ہے ، جہاں جوڑی کو ہیش ٹیبل میں رکھا جائے گا۔ ہیش ٹیبل میں ، نہ ہی ایک کلید اور نہ ہی کوئی قیمت کیل پوائنٹر واپس کر سکتی ہے۔ آئیے ہم ہیش ٹیبل کلاس اور ہیش ٹیبل کلاس کے تعمیر کاروں کا اعلان دیکھیں۔

/ * 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 ہوگا۔ یہاں بھی ، داخل کرنے کا آرڈر محفوظ نہیں ہے اور اسی وجہ سے ، جب ایڈ انٹریز تسلسل میں ظاہر نہیں ہوتی تھیں تو اسے کھلایا جاتا تھا۔

  1. ہش میپ کے اوزار نقشہ انٹرفیس اور خلاصہ کلاس میں توسیع ، خلاصہ نقشہ جبکہ ، ہیش ٹیبل تجریدی طبقے میں توسیع کرتا ہے لغت، جو ایک لیگیسی کلاس بھی ہے ، بعد میں اس پر عمل درآمد کرنے کے لئے دوبارہ تجدید کیا گیا نقشہ انٹرفیس.
  2. ہش میپ آبجیکٹ ہے غیر تسلیم شدہ یعنی متعدد دھاگے ایک ہی وقت میں اس پر چل سکتے ہیں لہذا ، اس سے تھریڈ محفوظ نہیں ہیں۔ دوسری طرف ، ہیش ٹیبل کی اشیاء ہیں ہم وقت ساز یعنی اگر کوئی دھاگہ ہیش ٹیبل کے کسی شے پر چلنا چاہتا ہے تو اسے اس شے پر ایک تالا حاصل کرنا ہوگا تاکہ کوئی دوسرا دھاگہ اس چیز تک نہ پہنچ سکے اور اس لئے یہ دھاگے سے محفوظ ہے۔
  3. ہش میپ میں کلید واپس آسکتی ہے صرف ایک بار منسوخ کریں، اور قدر واپس آسکتی ہے متعدد بار کال کریں. دوسری طرف ، ایک کلید کبھی بھی نول واپس نہیں کر سکتی ہے کیونکہ یہ ہیش کوڈ ویلیو حاصل کرنے کے لئے استعمال ہوتا تھا جسے انڈیکس کے طور پر اسٹور کرنے کے لئے استعمال کیا جاتا ہے۔ جوڑی اور نہ ہی کوئی قیمت نال کو واپس کر سکتی ہے۔
  4. ہیش میپ کلاس میں ہیش ٹیبل کی ڈیفالٹ صلاحیت ہے 16 جبکہ ، ہیش ٹیبل میں ہیش ٹیبل کی ڈیفالٹ گنجائش ہے 11.
  5. Iterator ہاشمیپ اندراجات کو عبور کرسکتے ہیں۔ دوسری طرف ، ہیش ٹیبل براہ راست Iterator کی حمایت نہیں کرتا ہے اور اس وجہ سے ، عام طور پر گنتی کرنے والا ہیش ٹیبل میں اندراجات کو عبور کرنے کے لئے استعمال کیا جاتا ہے۔

مماثلت:

  • ہیش میپ اور ہیش ٹیبل دونوں اس کے ڈیٹا ڈھانچے کا استعمال کرتے ہیں ہیش ٹیبل.
  • ہش میپ اور ہیش ٹیبل دونوں اوزار نقشہ انٹرفیس
  • داخل کرنے کا آرڈر محفوظ نہیں ہے دونوں ہیش میپ اور ہیش ٹیبل میں اور چابیاں استعمال کرکے حاصل کردہ ہیش کوڈ پر مبنی۔
  • ہش میپ اور ہیش ٹیبل میں ، کلیدیں ہونی چاہئیں انوکھا جبکہ ، اقدار ہوسکتی ہیں نقل.
  • ہش میپ اور ہیش ٹیبل دونوں پر مشتمل ہوسکتے ہیں متفاوت اشیاء دونوں چابیاں اور اقدار کیلئے۔
  • ہش میپ اور ہیش ٹیبل ، دونوں اطلاق سیرائزیبل اور کلون ایبل انٹرفیس لیکن نہیں ، بے ترتیب رسائی.
  • ہش میپ اور ہیش ٹیبل دونوں میں پہلے سے طے شدہ تناسب ہوتا ہے 0.75.
  • ہش میپ اور ہیش ٹیبل دونوں بازیافت کے ل best بہترین ہیں یا تلاش کر رہا ہے آپریشنز

نتیجہ:

کارکردگی میں ہش میپ بہتر ہے کیونکہ اس کی اشیاء ناقابل تسخیر ہیں اور ایک ہی وقت میں ایک سے زیادہ تھریڈز کام کرسکتی ہیں لہذا ، یہ ہیش ٹیبل سے تیز ہے۔