গণনা এবং উত্তরাধিকারী মধ্যে পার্থক্য

Anonim

গণনা বনাম Iterator

অনেক ডেটা স্ট্রাকচারগুলি জাভাতে সংগ্রহ যেমন ভেক্টর, হ্যাশ টেবিল এবং ক্লাস যা জাভা সংগ্রহের ফ্রেমওয়ার্ক (অর্থাত্ হ্যাশম্যাপ, হ্যাশটেট, অ্যারে লিস্ট, ট্রিসেট, ট্যারিম্যাপ, লিঙ্কডিলিস্ট, লিঙ্কডহাশম্যাপ এবং লিঙ্কড্যাশসেট)। জাভা অবজেক্টের পৃথক উপাদানের মাধ্যমে পুনরাবৃত্তির অনেক উপায় রয়েছে। জাভা এই কার্যকে আরও সহজ করার জন্য দুটি ইন্টারফেস সরবরাহ করে। জাভা পাওয়া যায় এমন ইন্টারফেস দুটি এবং গণনা করা হয়। উপাদানের প্যাকেজ যা বস্তুর একটি সেট সহ ক্রম বা বস্তুর মাধ্যমে গণনা করা কার্যকারিতা প্রদান করে। জবাবদিহিতাটি JDK 1. 0 এবং Iterator- এ চালু করা হয়েছিল যা JDK 1.২ এর মধ্যে চালু করা হয়েছিল। পরিসংখ্যানের কার্যকারিতা (সংগ্রহের কাঠামোর মধ্যে) কার্যত দ্বিগুণ করে।

গণনা কি?

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

--২ ->

গণনা e = v1 উপাদান ();

যদিও (ই। মরলাইমস ()) {

সিস্টেম। বাইরে। println (ই। পরবর্তী এল্লেমেন্ট ());

}

সিকুয়েন্স ইনপুটস্ট্রিম অবজেক্টগুলিতে ইনপুট প্রবাহকে সংজ্ঞায়িত করতে এনম্যানেটরও ব্যবহার করা যেতে পারে।

ইটারনেট কি?

ইটারনেট জাভাতে একটি পাবলিক ইন্টারফেস। উপভোগ প্যাকেজ, যা সংগ্রহের কাঠামো (যেমন ArrayList, LinkedList, ইত্যাদি) প্রয়োগ করে সংগ্রহ বস্তুর উপাদানগুলির মাধ্যমে ঘুরতে সক্ষম। এই JDK 1 সালে চালু করা হয়েছিল। 2 এবং জাভা সংগ্রহের ফ্রেমওয়ার্ক মধ্যে সংখ্যাগরিষ্ঠ প্রতিস্থাপিত। ইটারেরটারের তিনটি পদ্ধতি আছে পদ্ধতিটি পরবর্তী () পরীক্ষা আছে কিনা তা অবশিষ্ট উপাদান এবং পরবর্তী () পদ্ধতি সিরিজ পরবর্তী উপাদান ফেরৎ। অন্তর্নিহিত সংগ্রহ থেকে বর্তমান উপাদান সরানোর জন্য অপসারণ () পদ্ধতি ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, Iterator ব্যবহার করে ভেক্টর V1- এর সব উপাদান মুদ্রণ করতে, নিম্নলিখিত কোড স্নিপেট ব্যবহার করা যেতে পারে।

ইটারনেট আই = ভি 1। উপাদান ();

যদিও (আমি HasNext ()) {

সিস্টেম। বাইরে। println (ই। পরবর্তী ());

}

গণনা এবং ইটারের মধ্যে পার্থক্য কি?

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