【轉】 java foreach 使用 html
for(元素類型t 元素變量x : 遍歷對象obj){ 引用了x的java語句; }
import java.util.Arrays; import java.util.List; import java.util.ArrayList; /** * Created by IntelliJ IDEA. * User: leizhimin * Date: 2007-12-3 * Time: 16:58:24 * Java5新特徵之foreach語句使用總結 */ public class TestArray { public static void main(String args[]) { TestArray test = new TestArray(); test.test1(); test.listToArray(); test.testArray3(); } /** * foreach語句輸出一維數組 */ public void test1() { //定義並初始化一個數組 int arr[] = {2, 3, 1}; System.out.println("----1----排序前的一維數組"); for (int x : arr) { System.out.println(x); //逐個輸出數組元素的值 } //對數組排序 Arrays.sort(arr); //利用java新特性for each循環輸出數組 System.out.println("----1----排序後的一維數組"); for (int x : arr) { System.out.println(x); //逐個輸出數組元素的值 } } /** * 集合轉換爲一維數組 */ public void listToArray() { //建立List並添加元素 List<String> list = new ArrayList<String>(); list.add("1"); list.add("3"); list.add("4"); //利用froeach語句輸出集合元素 System.out.println("----2----froeach語句輸出集合元素"); for (String x : list) { System.out.println(x); } //將ArrayList轉換爲數組 Object s[] = list.toArray(); //利用froeach語句輸出集合元素 System.out.println("----2----froeach語句輸出集合轉換而來的數組元素"); for (Object x : s) { System.out.println(x.toString()); //逐個輸出數組元素的值 } } /** * foreach輸出二維數組測試 */ public void testArray2() { int arr2[][] = {{4, 3}, {1, 2}}; System.out.println("----3----foreach輸出二維數組測試"); for (int x[] : arr2) { for (int e : x) { System.out.println(e); //逐個輸出數組元素的值 } } } /** * foreach輸出三維數組 */ public void testArray3() { int arr[][][] = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} }; System.out.println("----4----foreach輸出三維數組測試"); for (int[][] a2 : arr) { for (int[] a1 : a2) { for (int x : a1) { System.out.println(x); } } } } }
運行結果:java
----1----排序前的一維數組 2 3 1 ----1----排序後的一維數組 1 2 3 ----2----froeach語句輸出集合元素 1 3 4 ----2----froeach語句輸出集合轉換而來的數組元素 1 3 4 ----4----foreach輸出三維數組測試 1 2 3 4 5 6 7 8 Process finished with exit code 0
/** * Created by IntelliJ IDEA. * User: leizhimin * Date: 2007-12-3 * Time: 17:07:30 * foreach語句的侷限性 */ public class TestArray2 { public static void main(String args[]) { //定義一個一維數組 int arr[] = new int[4]; System.out.println("----未賦值前輸出剛剛定義的數組----"); for (int x : arr) { System.out.println(x); } //經過索引給數組元素賦值 System.out.println("----經過循環變量給數組元素賦值----"); for (int i = 3; i > 0; i--) { arr[i] = i; } //循環輸出建立的數組 System.out.println("----賦值後,foreach輸出建立好的數組----"); for (int x : arr) { System.out.println(x); } } }
----未賦值前輸出剛剛定義的數組----
0
0
0
0
----經過循環變量給數組元素賦值----
----賦值後,foreach輸出建立好的數組----
0
1
2
3
Process finished with exit code 0
foreach語句是for語句特殊狀況下的加強版本,簡化了編程,提升了代碼的可讀性和安全性(不用怕數組越界)。相對老的for語句來講是個很 好的補充。提倡能用foreach的地方就不要再用for了。在用到對集合或者數組索引的狀況下,foreach顯得力不從心,這個時候是用for語句的 時候了。foreach通常結合泛型使用.編程