English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

مفهوم المسار والمحوسبين في Java

Iterator و Enumeration كلاهما مؤشرات، تستخدم لمرور وتحقق العناصر في المجموعة. كلاهما ينتميان إلى إطار الجمع. تم إضافة التعداد إلى Iterator في إصدارات JDK 1.0 و JDK 1.2 من إطار الجمع. 

لا يمكن للتنعداد إجراء تغييرات في بنية المجموعة، لأن لديه حق الوصول القارئ فقط إلى العناصر في المجموعة. إنه يحتوي على الطرق التالية:

  • * hasMoreElements()

  • * nextElement()

من جهة أخرى، يمكن لل迭代ر قراءة وإزالة العناصر من المجموعة. إنه يحتوي على الطرق التالية-

  • *hasNext()

  • *nex()

  • *remove()

الترتيبالمفتاحم迭代رتعداد
1
أساسي

في Iterator، يمكننا قراءة وإزالة العناصر عند مرورنا على العناصر في المجموعة.

باستخدام التعداد، يمكننا فقط قراءة العناصر عند مرورنا على العناصر في المجموعة.
2. 
زيارة 

يمكن استخدامها مع أي فئة من إطار الجمع.

يمكن استخدامها فقط مع الفئات القديمة للإطار الخاص بالجمع، مثل Vector و HashTable.
3. 
فشل-فشل وفشل-الأمان 

أي تغيير في المجموعة، مثل إزالة العناصر أثناء استدلال مجموعة من قبل نواة، سيثير استثناء التغيير المتعدد.

numerication في الواقع آمنة من الناحية المتعددة. 
4. 
محدوديات 
يمكنها تنفيذ الاستدلال في الاتجاه الواحد فقطلا يمكن استخدام numerication لإزالة العناصر.

الأساليب 

إن لديها ما يلي من الأساليب−

*hasNext()
*next()
*remove()
 إن لديها ما يلي من الأساليب-
* hasMoreElements()
* nextElement()

مثال على إnumerication

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());
      }
   }
}