اذهب إلى المحتوى
  • 0

الفرق بين foreach و iterator في جافا

خالد مرتضى

السؤال

Recommended Posts

  • 1

ال foreach هي نفسها كإستخدام الiterator ولكن بطريقة أسهل أو كما يُقال syntactic sugar

حيث أن الforeach تقوم بإستخدام الiterator بشكل مخفي عن المستخدم بغرض التسهيل, فمثلاً الشفرة

for (String i : list) {
        System.out.println(i);
    } 

أسهل من إستخدام الشفرة

Iterator it=list.iterator();
while (it.hasNext()){
   System.out.println(it.next());
}

ولكن يجب التنويه أن إستخدام الiterator يعطيك تحكم أكبر قد تحتاجه حيث ﻻ يمكنك تنفيذ بعض الوظائف بالforeach بسبب عدم وجود تحكم كامل , فمثلاً إن أردنا حذف عنصر من المجموعة ﻻ يمكننا تحقيق ذلك بإستخدام الforeach بينما يعطينا الiterator القابلية لتحقيق ذلك الغرض


for (String i : list) {
    list.remove(i); // سيتم إلقاء خطأ هنا 
} 

بينما بإستخدام الiterator

Iterator it=list.iterator();
while (it.hasNext()){
    it.remove(); // تعمل الشفرة بشكل سليم بدون إلقاء أيةِ أخطاء
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...