পুনরাবৃত্ত এবং গণনা উভয়ই সংগ্রহ থেকে একটি উপাদান অতিক্রম করতে এবং অ্যাক্সেস করার জন্য কার্সার। তারা উভয়ই সংগ্রহ কাঠামোর অন্তর্গত। সংগ্রহ কাঠামোতে JDK1.0 এবং JDK.1.2 সংস্করণে ইটারেটারে গণনা যোগ করা হয়েছে।
গণনা সংগ্রহে কাঠামোগত পরিবর্তন করতে পারে না কারণ এটি সংগ্রহের উপাদানটিতে শুধুমাত্র পঠনযোগ্য অ্যাক্সেস রয়েছে। এটির নিম্নলিখিত পদ্ধতি রয়েছে:
- *hasMoreElements()
- *nextElement()
অন্যদিকে, একটি পুনরাবৃত্তিকারী সংগ্রহের উপাদানটি পড়তে এবং সরাতে পারে। এটিতে নিম্নলিখিত পদ্ধতি রয়েছে -
- *hasNext()
- *পরবর্তী()
- *রিমুভ()
Sr. না। | কী | Iterator | গণনা |
---|---|---|---|
1 | বেসিক | Iterator-এ, আমরা সংগ্রহের উপাদানগুলি অতিক্রম করার সময় উপাদান পড়তে এবং সরাতে পারি। | গণনা ব্যবহার করে, আমরা সংগ্রহের উপাদানগুলি অতিক্রম করার সময় শুধুমাত্র উপাদান পড়তে পারি। |
2. | অ্যাক্সেস | এটি সংগ্রহের ফ্রেমওয়ার্কের যেকোনো শ্রেণীর সাথে ব্যবহার করা যেতে পারে। | এটি শুধুমাত্র ভেক্টর এবং হ্যাশটেবলের মতো সংগ্রহের ফ্রেমওয়ার্কের লিগ্যাসি ক্লাসের সাথে ব্যবহার করা যেতে পারে। |
3. | ব্যর্থ-দ্রুত এবং ব্যর্থ -নিরাপদ | সংগ্রহের যেকোন পরিবর্তন, যেমন একটি থ্রেডের সময় সংগ্রহ থেকে উপাদান অপসারণ করা সংগ্রহের পুনরাবৃত্তি হয় তারপর এটি সমবর্তী পরিবর্তন ব্যতিক্রম নিক্ষেপ করে। | গণনা প্রকৃতিতে ব্যর্থ নিরাপদ। এটি সমবর্তী পরিবর্তন ব্যতিক্রম নিক্ষেপ করে না |
4. | সীমাবদ্ধতা | শুধুমাত্র ফরোয়ার্ড দিকনির্দেশ পুনরাবৃত্তি করা সম্ভব | গণনা ব্যবহার করে অপারেশন অপসারণ করা যাবে না। |
5. | পদ্ধতি | এর নিম্নলিখিত পদ্ধতি রয়েছে - *পরবর্তী() *পরবর্তী() *অপসারণ() | এর নিম্নলিখিত পদ্ধতি রয়েছে - *আরো উপাদান আছে() *পরবর্তী উপাদান() |
গণনার উদাহরণ
class EnumerationExample { public static void main(String args[]) { List list = new ArrayList(Arrays.asList( new String[] {"Apple", "Cat", "Dog", "Rat"})); Vector v = new Vector(list); delete(v, "Dog"); } private static void delete(Vector v, String name) { Enumeration e = v.elements(); while (e.hasMoreElements()) { String s = (String) e.nextElement(); if (s.equals(name)) { v.remove(name); } } // Display the names System.out.println("The names are:"); e = v.elements(); while (e.hasMoreElements()) { // Prints elements System.out.println(e.nextElement()); } } }
ইটারেটরের উদাহরণ
class IteratorExample { public static void main(String args[]) { List list = new ArrayList(Arrays.asList( new String[] {"Apple", "Cat", "Dog", "Rat"})); Vector v = new Vector(list); delete(v, "Dog"); } private static void delete(Vector v, String name) { Iterator i = v.iterator(); while (i.hasNext()) { String s = (String) i.next(); if (s.equals(name)) { i.remove(); } } // Display the names System.out.println("The names are:"); i = v.iterator(); while (i.hasNext()) { System.out.println(i.next()); } } }