java中的foreach循环

foreach的语句格式: 
for(元素类型t 元素变量x : 遍历对象obj){ 
     引用了x的java语句; 

一、foreach简化数组和集合的遍历 
下面通过两个例子简单例子看看foreach是如何简化编程的。代码如下:

 1 import java.util.Arrays;  
2 import java.util.List;  
3 import java.util.ArrayList;  
4  
5  
12 public class TestArray {  
13     public static void main(String args[]) {  
14          TestArray test = new TestArray();  
15          test.test1();  
16 test.listToArray(); 17          test.testArray3();  
18  
19      
20  
21      
24     public void test1() {  
25         //定义并初始化一个数组  
26         int arr[] = {2, 3, 1};  
27          System.out.println("----1----排序前的一维数组");  
28         for (int x : arr) {  
29              System.out.println(x); //逐个输出数组元素的值  
30          
31  
32         //对数组排序  
33          Arrays.sort(arr);  
34  
35         //利用java新特性for each循环输出数组  
36          System.out.println("----1----排序后的一维数组");  
37         for (int x : arr) {  
38              System.out.println(x); //逐个输出数组元素的值  
39          
40      
41  
42      
45     public void listToArray() {  
46         //创建List并添加元素  
47          List list = new ArrayList();  
48          list.add("1");  
49          list.add("3");  
50          list.add("4");  
51  
52         //利用froeach语句输出集合元素  
53          System.out.println("----2----froeach语句输出集合元素");  
54         for (String x : list) {  
55              System.out.println(x);  
56          
57  
58         //将ArrayList转换为数组  
59          Object s[] = list.toArray();  
60  
61         //利用froeach语句输出集合元素  
62          System.out.println("----2----froeach语句输出集合转换而来的数组元素");  
63         for (Object x : s) {  
64              System.out.println(x.toString()); //逐个输出数组元素的值  
65          
66      
67  
68      
71     public void testArray2() {  
72         int arr2[][] = {{4, 3}, {1, 2}};  
73          System.out.println("----3----foreach输出二维数组测试");  
74         for (int x[] : arr2) {  
75             for (int e : x) {  
76                  System.out.println(e); //逐个输出数组元素的值  
77              
78          
79      
80  
81      
84     public void testArray3() {  
85         int arr[][][] =  
86                  {{1, 2}, {3, 4}},  
87                  {{5, 6}, {7, 8}}  
88          };  
89  
90          System.out.println("----4----foreach输出三维数组测试");  
91         for (int[][] a2 : arr) {  
92             for (int[] a1 : a2) {  
93                 for (int x : a1) {  
94                      System.out.println(x);  
95                  
96              
97          
98      
99
二、foreach语句的局限性 
通过上面的例子可以发现,如果要引用数组或者集合的索引,则foreach语句无法做到,foreach仅仅老老实实地遍历数组或者集合一遍。下面看一个例子就明白了:

public class TestArray2 {  
9  
10     public static void main(String args[]) {  
11         //定义一个一维数组  
12         int arr[] = new int[4];  
13          System.out.println("----未赋值前输出刚刚定义的数组----");  
14         for (int x : arr) {  
15              System.out.println(x);  
16          
17  
18         //通过索引给数组元素赋值  
19          System.out.println("----通过循环变量给数组元素赋值----");  
20         for (int i = 3; i > 0; i--) {  
21              arr[i] = i;  
22          
23         //循环输出创建的数组  
24          System.out.println("----赋值后,foreach输出创建好的数组----");  
25         for (int x : arr) {  
26              System.out.println(x);  
27          
28      
29  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值