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語句的局限性通過上面的例子可以發現,如果要引用數組或者集合的索引,則foreach語句無法做到,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