ด้วย Java5 เราสามารถเขียน:
Foo[] foos = ...
for (Foo foo : foos) 
หรือเพียงแค่ใช้ Iterable ใน for for loop มันมีประโยชน์มาก
อย่างไรก็ตามคุณไม่สามารถเขียนวิธีทั่วไปสำหรับการทำซ้ำเช่นนี้:
public void bar(Iterable<Foo> foos) { .. }
และเรียกมันด้วยอาเรย์เนื่องจากมันไม่ใช่ Iterable:
Foo[] foos = { .. };
bar(foos);  // compile time error 
ฉันสงสัยเกี่ยวกับเหตุผลที่อยู่เบื้องหลังการตัดสินใจออกแบบนี้
java.lang.reflect.Arrayแต่ประสิทธิภาพการทำงานจะอ่อนแอ อย่างไรก็ตามคุณสามารถเขียนตัววนซ้ำของคุณเอง (หรือใช้งานรายการ!) เพื่อตัดอาร์เรย์ประเภทดั้งเดิมหากคุณต้องการ