語法
for (Object objectname : preArrayList(一个Object对象的列表)) {}
範例
package com.kuaff.jdk5; import java.util.*; import java.util.Collection; public class Foreach { private Collection c = null; private String[] belle = new String[4]; public Foreach() { belle[0] = "西施"; belle[1] = "王昭君"; belle[2] = "貂禅"; belle[3] = "杨贵妃"; c = Arrays.asList(belle); } public void testCollection() { for (String b : c) { System.out.println("曾经的风化绝代:" + b); } } public void testArray() { for (String b : belle) { System.out.println("曾经的青史留名:" + b); } } public static void main(String[] args) { Foreach each = new Foreach(); each.testCollection(); each.testArray(); } }
對於集合類型和陣列類型的,我們都可以透過foreach語法來存取它。上面的例子中,以前我們要依次訪問數組,挺麻煩:
for (int i = 0; i < belle.length; i++) { String b = belle[i]; System.out.println("曾经的风化绝代:" + b); }
現在只需下面簡單的語句即可:
for (String b : belle) { System.out.println("曾经的青史留名:" + b); }
對集合的訪問效果更明顯。以前我們訪問集合的程式碼:
for (Iterator it = c.iterator(); it.hasNext();) { String name = (String) it.next(); System.out.println("曾经的风化绝代:" + name); }
現在我們只需下面的語句:
for (String b : c) { System.out.println("曾经的风化绝代:" + b); }
Foreach也不是萬能的,它也有以下的缺點:
在以前的程式碼中,我們可以透過Iterator執行remove操作。
for (Iterator it = c.iterator(); it.hasNext();) { itremove() }
但是,在現在的foreach版中,我們無法刪除集合包含的物件。你也不能替換物件。
同時,你也不能並行的foreach多個集合。所以,當我們寫程式碼時,還得看情況而使用它。
更多java程式中foreach用法範例相關文章請關注PHP中文網!