জাভাতে আইট্রেটর এবং গণনা ইন্টারফেসের মধ্যে পার্থক্য

লেখক: Laura McKinney
সৃষ্টির তারিখ: 2 এপ্রিল 2021
আপডেটের তারিখ: 3 জুলাই 2024
Anonim
জাভা 8 এ ইটারেটর এবং স্প্লিটারেটরের মধ্যে পার্থক্য কী? || জাভা 8 ইন্টারভিউ প্রশ্ন
ভিডিও: জাভা 8 এ ইটারেটর এবং স্প্লিটারেটরের মধ্যে পার্থক্য কী? || জাভা 8 ইন্টারভিউ প্রশ্ন

কন্টেন্ট


যে কোনও একটি সংগ্রহ থেকে উপাদানগুলির অ্যাক্সেসের জন্য ব্যবহৃত তিনটি কার্সার হ'ল গণনা, Iterator এবং listIterator। যদিও, Iterator এবং গণক একই কাজ সম্পাদনের জন্য বোঝানো হয়। তবুও, তারা একে অপর থেকে পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথকভাবে। অন্যদিকে, Iterator পড়ার পাশাপাশি সংগ্রহ থেকে উপাদানগুলি সরাতে পারে। Iterator এবং গণনা মধ্যে গুরুত্বপূর্ণ পার্থক্য হ'ল শুমার সংগ্রহের ক্লাসগুলিতে প্রয়োগ করা যায় না এটি কেবলমাত্র উত্তরাধিকার শ্রেণিতেই প্রযোজ্য। অন্যদিকে, iterator সংগ্রহের ক্লাসগুলির জন্য তাই প্রযোজ্য, এটি সর্বজনীন কার্সার হিসাবে উল্লেখ করা হয়। আসুন নীচে প্রদর্শিত তুলনা চার্টের সাহায্যে Iterator এবং গণনার মধ্যে আরও কিছু পার্থক্য শিখি।

  1. তুলনা রেখাচিত্র
  2. সংজ্ঞা
  3. মূল পার্থক্য
  4. উপসংহার

তুলনা রেখাচিত্র

তুলনা করার জন্য বেসiterator শুমার
মৌলিকIterator সর্বজনীন কার্সার হিসাবে এটি সমস্ত সংগ্রহের ক্লাসের জন্য প্রযোজ্য।গণনা সর্বজনীন কার্সার নয় কারণ এটি কেবল উত্তরাধিকার শ্রেণিতেই প্রযোজ্য।
প্রবেশIterator ব্যবহার করে আপনি সংগ্রহের উপাদানগুলি পড়তে এবং মুছে ফেলতে পারেন।গণনা ব্যবহার করে আপনি কেবলমাত্র সংগ্রহের উপাদানগুলি পড়তে পারেন।
পদ্ধতিপাবলিক বুলিয়ান hasnext ();
পাবলিক অবজেক্টস পরবর্তী ();
সর্বজনীন শূন্যতা অপসারণ ();
পাবলিক বুলিয়ান hasMoreElements ();
পাবলিক অবজেক্ট নেক্সটমেন্ট ();
সীমাবদ্ধতাIterator একটি নির্দেশমূলক ফরোয়ার্ড অ্যাক্সেস কার্সার।
Iterator সংগ্রহের কোনও উপাদান প্রতিস্থাপন করতে পারবেন না।
সংগ্রহকারী কোনও নতুন উপাদান যুক্ত করতে পারবেন না can
গণনা একমুখী ফরোয়ার্ড অ্যাক্সেস কার্সর।
গণনা কেবল উত্তরাধিকারের ক্লাসগুলিকে সমর্থন করে।
গণনার একটি সংকলনের উপাদানগুলিতে কেবল পঠনযোগ্য অ্যাক্সেস রয়েছে।
পরাস্তআইট্রেটারের সীমাবদ্ধতাগুলি কাটিয়ে উঠতে আপনাকে অবশ্যই তালিকার জন্য নির্বাচন করতে হবে।গণনার সীমাবদ্ধতাগুলি কাটিয়ে উঠতে আপনাকে অবশ্যই আইট্রেটারের বিকল্প বেছে নিতে হবে।


Iterator ইন্টারফেস সংজ্ঞা

iterator সংগ্রহের কাঠামোর একটি ইন্টারফেস। যেমন সংগ্রহকারী সমস্ত সংগ্রহের ক্লাসে প্রযোজ্য তাই এটি সর্বজনীন কার্সার হিসাবে উল্লেখ করা হয়। এটি সংগ্রহে থাকা উপাদানগুলিকে একের পর এক অ্যাক্সেস করতে ব্যবহৃত কার্সার। আইট্রেটার ব্যবহার করে আপনি সংগ্রহ থেকে উপাদানগুলি পুনরুদ্ধার করতে পারেন এবং আপনি চাইলে সংগ্রহ থেকে উপাদানগুলিও সরিয়ে ফেলতে পারেন। নীচে দেওয়া হিসাবে Iterator এর অবজেক্ট তৈরি করা যেতে পারে।

Iterator itr = Collc.iterator ();

পরিবর্তনশীল আইটিআর Iterator এর একটি বিষয়। Collc আইট্রেটারের অবজেক্ট (আইটিআর) ব্যবহার করে চক্র বা পুনরাবৃত্ত হওয়া এমন কোনও সংগ্রহ সামগ্রী। দ্য পুনরুক্তিকারীর () একটি পুনরুক্তিযোগ্য বস্তু তৈরি করতে ব্যবহৃত পদ্ধতি। নীচে প্রদর্শিত হিসাবে Iterator তিনটি পদ্ধতি আছে।

পাবলিক বুলিয়ান hasnext (); পাবলিক অবজেক্ট পরবর্তী (); সর্বজনীন শূন্যতা অপসারণ ();

প্রথম পদ্ধতি hasnext () সংগ্রহটির কোনও উপাদান রয়েছে কি না তা পরীক্ষা করে। যদি সংগ্রহে উপাদানগুলি থাকে তবে এটি সত্য হবে এবং অন্যথায় মিথ্যা ফিরে আসবে। দ্বিতীয় পদ্ধতি পরবর্তী() সংগ্রহের পরবর্তী উপাদানগুলি পুনরুদ্ধার করতে ব্যবহৃত হয়। তৃতীয় পদ্ধতি অপসারণ() সংগ্রহ থেকে উপাদানগুলি মুছতে ব্যবহৃত হয়।


Iterator শুধুমাত্র একটি সংগ্রহে ভ্রমণ করতে পারে অগ্রসর দিক এটি ভ্রমণের সময় ফিরে যেতে পারে না। Iterator সংগ্রহ থেকে উপাদানটি সরিয়ে ফেলতে পারে তবে বিদ্যমান উপাদানকে নতুন উপাদান দিয়ে প্রতিস্থাপন করার ক্ষমতা নেই তবে এটি সংগ্রহে কোনও নতুন উপাদান যুক্ত করতে পারে না। এই সীমাবদ্ধতাগুলি কাটিয়ে উঠতে আপনি তালিকার ইন্টারফেসের জন্য যেতে পারেন।

গণনা ইন্টারফেস সংজ্ঞা

শুমার ইন্টারফেসটি প্রযোজ্য উত্তরাধিকার ক্লাস, এবং এটি কোনও সংগ্রহ শ্রেণিতে প্রয়োগ করা যাবে না। সুতরাং, এটি সর্বজনীন কার্সার নয়। গণনা একের পর এক সংগ্রহ থেকে উপাদান (বস্তু) পুনরুদ্ধার করে। গণনার অবজেক্টের সংগ্রহের উপাদানগুলিতে কেবল পঠনযোগ্য অ্যাক্সেস রয়েছে। গণনা অবজেক্ট সংগ্রহ থেকে কোনও উপাদান পরিবর্তন করতে পারে না। আসুন দেখি কীভাবে এনুমুরেশন অবজেক্ট তৈরি করা যায়, এক ঝলক দেখি।

গণনা এর = ভেক্ট.এলিমেন্টস ();

পরিবর্তনশীল er গণনার একটি অবজেক্ট। দ্য Vect ভেক্টর শ্রেণীর অবজেক্ট যা এনুমুরেশনের অবজেক্ট (এআর) দ্বারা অনুসরণ করতে হয়। পদ্ধতি উপাদান () গণনার একটি অবজেক্ট তৈরি করতে ব্যবহৃত হয়। নীচের চিত্র অনুসারে এনুমুরেশন ইন্টারফেসে কেবল দুটি পদ্ধতি রয়েছে।

পাবলিক বুলিয়ান hasMoreElements (); সর্বজনীন পরের উপাদান ();

প্রথম পদ্ধতি hasMoreElements () সংগ্রহের স্থিতি পরীক্ষা করতে এটির উপাদান বা এটি খালি রয়েছে কিনা তা যাচাই করতে ব্যবহৃত হয়। যদি সংগ্রহটিতে উপাদানগুলি থাকে তবেMoreElements () পদ্ধতিটি সত্য ফিরে আসে অন্যথায় মিথ্যা প্রত্যাবর্তন করে। দ্বিতীয় পদ্ধতি nextElement () একের পর এক সংগ্রহ থেকে উপাদান পুনরুদ্ধার করতে ব্যবহৃত হয়। যখন ট্র্যাভারসিং শেষ হয় পরবর্তী এলিমেন্ট () পদ্ধতিটি ছোঁড়ে NoSuchElementException। গণনা অবজেক্টটি কেবল সামনের দিকে ভ্রমণ করে। এটি সংগ্রহের কোনও উপাদান যুক্ত বা অপসারণ বা প্রতিস্থাপন করতে পারে না। গণনার এই সীমাবদ্ধতাগুলি কাটিয়ে উঠতে আপনাকে অবশ্যই আইট্রেটারের বিকল্প বেছে নিতে হবে।

  1. Iterator এবং গণনা মধ্যে প্রধান পার্থক্য হ'ল Iterator একটি সার্বজনীন কার্সার, যে কোনও সংগ্রহ বস্তুর পুনরাবৃত্তি জন্য ব্যবহার করা যেতে পারে। অন্যদিকে, গণনাটি কেবল উত্তরাধিকার শ্রেণীর অবজেক্ট অবজেক্টের জন্য ব্যবহৃত হয়।
  2. গণনার অবজেক্টের কেবলমাত্র সংগ্রহের উপাদানগুলিতে কেবল পঠনযোগ্য অ্যাক্সেস রয়েছে। তবে, আইট্রেটারের অবজেক্ট সংগ্রহ থেকে উপাদানগুলি পড়তে এবং মুছে ফেলতে পারে।
  3. পুনরুক্তারের দুটি পদ্ধতি রয়েছে একটি সংগ্রহের স্থিতি পরীক্ষা করতে এবং একটি সংগ্রহ থেকে উপাদানগুলি পুনরুদ্ধার করতে। গণনা পদ্ধতি ছাড়াও উপাদান থেকে সংগ্রহ থেকে মুছে ফেলার জন্য আরও একটি পদ্ধতি রয়েছে আইট্রেটরের।
  4. গণনার সীমাবদ্ধতা হ'ল এটি একমুখী কার্সার এগিয়ে রয়েছে, এতে কেবল পঠনযোগ্য অ্যাক্সেস রয়েছে এবং এটি সংগ্রহ ক্লাসে প্রয়োগ করা যেতে পারে। অন্য উপায়ে, আইট্রেটর সংগ্রহের কোনও নতুন উপাদান প্রতিস্থাপন বা যোগ করতে পারে না এবং গণনা পছন্দ করে এটি এরও অগ্রবর্তী একমুখী কার্সার।
  5. গণনার সীমাবদ্ধতা Iterator দ্বারা সমাধান করা হয় এবং Iterator এর সীমাবদ্ধতা listIterator দ্বারা সমাধান করা হয়।

উপসংহার:

আজকাল, Iterator এবং listItertaor কার্সার ব্যবহার করা হয় কারণ তারা সর্বজনীন কার্সার এবং গণনার তুলনায় অনেক দক্ষ।