原文链接:http://blog.csdn.net/qq_22195761/article/details/70313837
foreach总结:
foreach是java5的新特性,有人说是抄袭C#的,我也不太清楚,反正会用就行了,主要增强了for循环,在遍历数组和集合上面很方便。
foreach是for循环的简化版本,但是foreach不能完全取代for循环,然而任何foreach都可以改写为for循环,foreach不是一个关键字,主要就是这个格式,每一个for的意思。
foreach语句格式:
for(元素类型type 元素变量value : 遍历对象obj) {
引用x的java语句;
}
下面看几段代码,看看foeeach的强大和简便:
1 package cn.zpoor; 2 3 import java.util.List; 4 import java.util.ArrayList; 5 import java.util.Arrays; 6 7 /** 8 * @author 薛定谔的猫 9 * foreach遍历数组和集合*/ 10 public class TestArray { 11 12 public void initArray() { 13 //定义并且初始化一个数组 14 int arr[] = {2,5,3}; 15 System.out.println("-----排序前的一维数组:"); 16 for(int x:arr) { 17 System.out.print(x + " ");//foreach循环逐个输入数组元素的值 18 } 19 System.out.println(); 20 21 //数组冒泡排序 22 Arrays.sort(arr); 23 //foreach输出排序之后的数组元素 24 System.out.println("-----排序后的一维数组:"); 25 for(int x:arr) { 26 System.out.print(x+" "); 27 } 28 System.out.println(); 29 } 30 31 //集合转换成数组 32 public void listToArray() { 33 //创建list并且添加元素 34 List<String> list = new ArrayList<String>(); 35 list.add("1"); 36 list.add("2"); 37 list.add("5"); 38 39 //foreach循环输出集合元素 40 System.out.println("-----foreach输出集合元素"); 41 for(String x:list) { 42 System.out.println(x+ " "); 43 } 44 System.out.println(); 45 46 //把ArrayList转换成数组 47 Object[] obj = list.toArray(); 48 System.out.println("-----foreach输出集合转换而来的数组元素"); 49 for(Object x:obj) { 50 System.out.print(x.toString()+ " ");//逐个输出数字元素的值 51 } 52 System.out.println(); 53 } 54 55 //foreach输出二维数组 56 public void twoDimensionArray() { 57 int arr[][] = {{1,2},{3,4}}; 58 System.out.println("-----foreach输出二维数组"); 59 for(int[] x:arr) { 60 for(int e:x) { 61 System.out.print(e+ " ");//逐个输出数组元素,多维数组的本质就是没有多维数组 62 } 63 } 64 System.out.println(); 65 } 66 67 //foreach输出三维数组 68 public void threeDimensionArray() { 69 int arr[][][] = { 70 {{1,2},{3,4}}, 71 {{5,6},{7,8}} 72 }; 73 74 System.out.println("-----foreach输出三维数组"); 75 for(int[][] x:arr) { 76 for(int[] y:x) { 77 for(int z:y) { 78 System.out.print(z + " ");//三重循环,有点作死 79 } 80 } 81 } 82 } 83 84 public static void main(String[] args) { 85 TestArray test = new TestArray(); 86 test.initArray(); 87 test.listToArray(); 88 test.twoDimensionArray(); 89 test.threeDimensionArray(); 90 } 91 } 92 93 /*-----排序前的一维数组: 94 2 5 3 95 -----排序后的一维数组: 96 2 3 5 97 -----foreach输出集合元素 98 1 99 2 100 5 101 102 -----foreach输出集合转换而来的数组元素 103 1 2 5 104 -----foreach输出二维数组 105 1 2 3 4 106 -----foreach输出三维数组 107 1 2 3 4 5 6 7 8 108 */