JAVA for-each循环与数组

 

Java SE 5.0新增了for-each的语法,又称强化的for循环(Enhanced for Loop),应用于数组的依次存取。for-each循环的语法如下:

 

for (ElementType element : arrayName) {}

 

解释一下,冒号前面是声明一个临时变量,将在该foreach的代码段中进行引用;冒号后面是表达式,应该为集合或者数组。注意,临时变量element的类型ElementType必须与数组(或集合)元素的数据类型相同。

运行AccessArrayWithForEach.java(范例5-11),学习for-each循环的用法。

 

程序清单5-11:AccessArrayWithForEach.java

public class AccessArrayWithForEach {

public static void main(String[] args) {

           String months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun",

                            "July", "Aug", "Sep", "Oct", "Nov", "Dec"};

 

           // Shortcut syntax loops through array months and assigns the next

// element to variable month for each pass through the loop

for(String month: months) {

System.out.println("month: " + month);

}

       }

}

 

AccessArrayWithForEach.java中,每一次从数组months中取出的元素,会自动设定给month,不再需要判断是否超出了数组的长度。与AccessArrayWithForLoop.java(范例5-2)相比较,For-each的形式实现数组中的元素的依次存取,比for循环的代码简洁不少。但是这种形式的一个最大的缺点就是for-each没法定位访问单个元素,也就没办法修改,删除集合中的内容; 同时,for-each也不能并行操作多个集合。所以,在编写代码时,还得看情况使用它。

二维数组如何使用for-each的方式来存取呢?要是了解数组本身就是一个对象,自然就会知道如何存取。举个例子:

int[][] arr = {{1, 2, 3},

          {4, 5, 6},

          {7, 8, 9}};

    For-each形式的数组存取代码如下:

for ( int[] row : arr ) {

    for ( int element : row ) {

        System.out.println(element);

    }

}

阅读更多
个人分类: 数组 JAVA
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭