التكرار العكسي على القوائم
كرّر على قائمة بترتيب عكسي باستخدام حلقة for-each نظيفة.
مقارنة الكود
✕ Java 8
for (ListIterator<String> it =
list.listIterator(list.size());
it.hasPrevious(); ) {
String element = it.previous();
System.out.println(element);
}
✓ Java 21+
for (String element : list.reversed()) {
IO.println(element);
}
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
بنية طبيعية
حلقة for المحسّنة بدلاً من ListIterator المطوّل.
لا نسخ
reversed() تُرجع عرضاً — لا تكلفة أداء.
واجهة برمجية موحّدة
تعمل على List و Deque و SortedSet بشكل موحّد.
الأسلوب القديم
ListIterator يدوي
الأسلوب الحديث
reversed()
منذ JDK
21
الصعوبة
مبتدئ
دعم JDK
التكرار العكسي على القوائم
متاح
متاح على نطاق واسع منذ JDK 21 LTS (سبتمبر 2023)
كيف يعمل
تُرجع الدالة reversed() من SequencedCollection عرضاً عكسياً للقائمة. هذا العرض مدعوم بالقائمة الأصلية دون نسخ. تجعل صيغة حلقة for المحسّنة التكرار العكسي بنفس سهولة التكرار الأمامي.
توثيق ذو صلة