for-each
حلقة for-each for-each
for-each (الصيغة المختصرة) تمرّ على كل عنصر في مصفوفة أو مجموعة مباشرة بلا فهرس.
الصيغة المختصرة for (Type item : collection) أبسط وأأمن من الحلقة العادية لأنها تمنع أخطاء الفهارس. لكنها لا تمنحك الوصول للفهرس — لو تحتاج الفهرس، استخدم for العادية أو `IntStream.range`.
الصياغة
for (Type item : collection) {
// مع كل عنصر
}📄 مثال
String[] fruits = {"تفاح", "موز", "برتقال"};
for (String fruit : fruits) {
System.out.println(fruit);
}
// مع ArrayList:
ArrayList<Integer> nums = new ArrayList<>(List.of(1, 2, 3));
for (int n : nums) {
System.out.println(n);
}أهم النقاط
| العنصر | الوظيفة |
|---|---|
| for (T item : arr) | تمرير على كل عنصر بدون فهرس — أبسط وأأمن |
| limitation | لا تمنحك الفهرس الحالي، ولا تسمح بالتعديل أثناء المرور |
💡 نصائح عملية
- استخدمها دائمًا بدل for بالفهرس عندما لا تحتاج للفهرس
- لا تعدّل المصفوفة أثناء المرور — قد تسبب ConcurrentModificationException مع المجموعات
⚠️ أخطاء شائعة
- التعديل على العنصر في for-each لا يُغيّر المصفوفة الأصلية — العنصر نسخة مؤقتة
- 尝试 الوصول للفهرس في for-each — غير ممكن مباشرة
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.