原文链接: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 */

浙公网安备 33010602011771号