English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Iterator و Enumeration كلاهما مؤشرات، تستخدم لمرور وتحقق العناصر في المجموعة. كلاهما ينتميان إلى إطار الجمع. تم إضافة التعداد إلى Iterator في إصدارات JDK 1.0 و JDK 1.2 من إطار الجمع.
لا يمكن للتنعداد إجراء تغييرات في بنية المجموعة، لأن لديه حق الوصول القارئ فقط إلى العناصر في المجموعة. إنه يحتوي على الطرق التالية:
* hasMoreElements()
* nextElement()
من جهة أخرى، يمكن لل迭代ر قراءة وإزالة العناصر من المجموعة. إنه يحتوي على الطرق التالية-
*hasNext()
*nex()
*remove()
الترتيب | المفتاح | م迭代ر | تعداد |
---|---|---|---|
1 | أساسي | في Iterator، يمكننا قراءة وإزالة العناصر عند مرورنا على العناصر في المجموعة. | باستخدام التعداد، يمكننا فقط قراءة العناصر عند مرورنا على العناصر في المجموعة. |
2. | زيارة | يمكن استخدامها مع أي فئة من إطار الجمع. | يمكن استخدامها فقط مع الفئات القديمة للإطار الخاص بالجمع، مثل Vector و HashTable. |
3. | فشل-فشل وفشل-الأمان | أي تغيير في المجموعة، مثل إزالة العناصر أثناء استدلال مجموعة من قبل نواة، سيثير استثناء التغيير المتعدد. | numerication في الواقع آمنة من الناحية المتعددة. |
4. | محدوديات | يمكنها تنفيذ الاستدلال في الاتجاه الواحد فقط | لا يمكن استخدام numerication لإزالة العناصر. |
5، | الأساليب | إن لديها ما يلي من الأساليب− *hasNext() | إن لديها ما يلي من الأساليب- * hasMoreElements() * nextElement() |
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); } } // عرض الأسماء System.out.println("The names are:"); e = v.elements(); while (e.hasMoreElements()) { // طباعة العناصر 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(); } } // عرض الأسماء System.out.println("The names are:"); i = v.iterator(); while (i.hasNext()) { System.out.println(i.next()); } } }