جاوا میں Iterator اور گنتی انٹرفیس کے درمیان فرق

مصنف: Laura McKinney
تخلیق کی تاریخ: 2 اپریل 2021
تازہ کاری کی تاریخ: 10 مئی 2024
Anonim
#11.1 مجموعہ اور عمومیات | تکرار کرنے والا انٹرفیس
ویڈیو: #11.1 مجموعہ اور عمومیات | تکرار کرنے والا انٹرفیس

مواد


وہ تین کرسر جو کسی بھی مجموعہ سے عناصر تک ایک ایک کرکے رسائی حاصل کرنے کے لئے استعمال ہوتے ہیں گنتی ، Iterator اور listIterator. اگرچہ ، Iterator اور Enumerator ایک ہی کام کو انجام دینے کے لئے ہیں. پھر بھی ، وہ اس لحاظ سے ایک دوسرے سے مختلف ہیں کہ مجموعہ میں عنصرن تک صرف عنصری تک رسائی کی دسترس موجود ہے۔ دوسری طرف ، Iterator پڑھنے کے ساتھ ساتھ مجموعہ سے عناصر کو بھی ہٹا سکتا ہے۔ Iterator اور گنتی کے درمیان اہم فرق یہ ہے کہ گنتی جمع کرنے والی کلاسوں پر لاگو نہیں ہوسکتا ہے یہ صرف لیگیسی کلاسوں پر ہی لاگو ہوتا ہے۔ دوسری طرف ، Iterator لہذا جمع کرنے کی کلاسوں پر لاگو ہوتا ہے ، اس کو عالمگیر کرسر کہا جاتا ہے۔ آئیے ذیل میں دکھائے گئے موازنہ چارٹ کی مدد سے آئٹرٹر اور گنتی کے مابین کچھ اور فرق سیکھیں۔

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

موازنہ چارٹ

موازنہ کی بنیادIterator گنتی
بنیادیIterator ایک عالمگیر کرسر ہے کیونکہ یہ جمع کرنے کی تمام کلاسوں کے لئے لاگو ہوتا ہے۔گنتی عالمگیر کرسر نہیں ہے کیونکہ یہ صرف میراثی کلاسوں پر ہی لاگو ہوتا ہے۔
رسائیآئٹریٹر کا استعمال کرکے آپ مجموعہ میں موجود عناصر کو پڑھ سکتے ہیں اور اسے ختم کرسکتے ہیں۔گنتی کا استعمال کرتے ہوئے آپ مجموعہ میں موجود عناصر کو ہی پڑھ سکتے ہیں۔
طریقےپبلک بولین ہینکسٹ ()؛
عوامی اشیاء اگلا ()؛
عوامی باطل کو ختم ()؛
عوامی بولین ہےموریلیمٹس ()؛
عوامی آبجیکٹ اگلے عنصر ()؛
حدIterator ایک غیر مستقیم آگے تک رسائی کرسر ہے.
Iterator مجموعہ میں کسی بھی عنصر کی جگہ نہیں لے سکتے ہیں.
آئٹریٹر مجموعہ میں کوئی نیا عنصر شامل نہیں کرسکتا۔
گنتی غیر مستقیم رسائی رسائی کرسر ہے۔
گنتی صرف میراثی کلاسوں کی حمایت کرتی ہے۔
مجموعے میں عنصرن تک صرف اعداد و شمار تک رسائی حاصل ہے۔
قابو پاناIterator کی حدود پر قابو پانے کے ل you ، آپ کو لازمی طور پر listIterator کا انتخاب کرنا چاہئے۔گنتی کی حدود کو دور کرنے کے ل you آپ کو لازمی طور پر Iterator کا انتخاب کرنا چاہئے۔


Iterator انٹرفیس کی تعریف

Iterator جمع کرنے کے فریم ورک میں ایک انٹرفیس ہے۔ چونکہ تمام جمع کرنے والی کلاسوں پر ایٹریٹر کا اطلاق ہوتا ہے ، لہذا اسے آفاقی کرسر کہا جاتا ہے۔ یہ کرسر ہے جو ایک دوسرے کے ذریعہ جمع کرنے والے عناصر تک رسائی حاصل کرتا ہے۔ Iterator کا استعمال کرتے ہوئے ، آپ مجموعہ سے عناصر کو بازیافت کرسکتے ہیں اور اگر آپ چاہیں تو عناصر کو بھی مجموعہ سے نکال سکتے ہیں۔ Iterator کا مقصد ذیل میں دیا جا سکتا ہے پیدا کیا جا سکتا ہے.

Iterator itr = Collc.iterator ()؛

متغیر itr Iterator کا ایک مقصد ہے. Collc کوئی بھی جمع کرنے والا شے ہے جس کو Iterator کے آبجیکٹ (itr) کا استعمال کرکے سائیکل یا تکرار کرنا ہے۔ تکرار کرنے والا () وہ طریقہ ہے جو آئٹرٹر آبجیکٹ بنانے کے لئے استعمال ہوتا ہے۔ Iterator میں تین طریقے ہیں جیسا کہ ذیل میں دکھایا گیا ہے۔

پبلک بولین ہینکسٹ ()؛ عوامی اعتراض اگلا ()؛ عوامی باطل کو ختم ()؛

پہلا طریقہ حصneہ () چیک کرتا ہے کہ آیا اس مجموعے میں کوئی عنصر موجود ہیں یا نہیں۔ اگر مجموعہ میں عناصر موجود ہیں تو ، یہ حقیقت میں واپس آ جائے گا اور غلط میں واپس آئے گا۔ دوسرا طریقہ اگلے() مجموعہ میں اگلے عنصر کو بازیافت کرنے کے لئے استعمال ہوتا ہے۔ تیسرا طریقہ دور() جمع کرنے والے عناصر کو حذف کرنے کے لئے استعمال ہوتا ہے۔


Iterator صرف ایک مجموعہ میں آگے کی سمت سفر کر سکتے ہیں جو سفر کے دوران پیچھے نہیں ہٹ سکتی ہے۔ Iterator مجموعہ سے عنصر کو ختم کر سکتے ہیں لیکن اس میں کسی موجودہ عنصر کو نئے عنصر کی جگہ لینے کی صلاحیت نہیں ہے اور نہ ہی یہ جمع کرنے میں کوئی نیا عنصر شامل کرسکتا ہے۔ ان حدود کو دور کرنے کے لئے آپ لسٹ انٹریٹر انٹرفیس کے لئے جا سکتے ہیں۔

گنتی انٹرفیس کی تعریف

گنتی پر لاگو انٹرفیس ہے میراث کلاسز ، اور کسی بھی جمع کرنے کی کلاس میں اس کا اطلاق نہیں کیا جاسکتا ہے۔ لہذا ، یہ عالمگیر کرسر نہیں ہے۔ گنتی مجموعے سے عنصر (اعتراض) کو ایک ایک کرکے بازیافت کرتی ہے۔ عنصری آبجیکٹ کے پاس مجموعہ کے عناصر تک صرف پڑھنے تک رسائی ہے۔ عنصری آبجیکٹ مجموعہ سے کسی عنصر کو تبدیل نہیں کرسکتا ہے۔ آئیے دیکھتے ہیں کہ گنتی آبجیکٹ کیسے بنائیں ، ایک نظر ڈالیں۔

گنتی er = Vect.elements ()؛

متغیر er گنتی کا ایک مقصد ہے۔ Vect ویکٹر کلاس کا مقصد ہے جو گنتی کے آبجیکٹ (er) سے گزرنا پڑتا ہے۔ طریقہ کار عنصر () عنصر کی آبجیکٹ بنانے کے لئے استعمال ہوتا ہے۔ جیسا کہ ذیل میں دکھایا گیا ہے انیمیوریشن انٹرفیس میں صرف دو طریقے ہیں۔

عوامی بولین ہےموریلیمٹس ()؛ عوامی اگلی عنصر ()؛

پہلا طریقہ hasMoreElements () مجموعہ کی حیثیت کو جانچنے کے لئے استعمال کیا جاتا ہے چاہے اس میں عنصر موجود ہوں یا یہ خالی ہو۔ اگر مجموعہ میں عناصر ہوں تو اس میں MoreElements () کا طریقہ درست ہے اور دوسری صورت میں غلط کو لوٹائیں گے۔ دوسرا طریقہ اگلا عنصر () ذخیرہ کرنے والے عناصر کو ایک ایک کرکے بازیافت کرنے کے لئے استعمال ہوتا ہے۔ جب ٹراورسنگ مکمل ہوجائے تو اگلی ایلیمینٹ () طریقہ پھینک دیتا ہے NoSuchElementException. عنصر آبجیکٹ صرف آگے کی سمت میں سفر کرتا ہے۔ یہ مجموعہ میں کسی بھی عنصر کو شامل یا ختم نہیں کرسکتی ہے۔ گنتی کی ان حدود کو دور کرنے کے ل you ، آپ کو لازمی طور پر Iterator کا انتخاب کرنا چاہئے۔

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

نتیجہ:

آج کل ، Iterator اور listItertaor کرسر کا استعمال کیا جاتا ہے کیونکہ وہ عالمگیر کرسر ہیں اور گنتی سے کہیں زیادہ موثر ہیں۔