foreach语句是Java5的新特征之一,在遍历数组,集合方面,foreach为开发人员提供了极大的方便。
需要注意的是,foreach语句是for语句的特殊简化版,但是foreach语句并不是完全取代for语句,然而,任何的foreach语句都可以转化为for语句。
foreach的语句格式:
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}一: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); //逐个输出数组元素的值 }
}
类似的foreach还阔以对二维数组,三维数组进行遍历。
一:foreach简化集合遍历:
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语句的局限性:通过上面的例子可以发现,如果要引用数组或者集合的索引,则foreach语句无法做到,foreach仅仅老老实实地遍历数组或者集合一遍。
四:总结:foreach语句是for语句的特殊情况下的增强版本,简化了编程,提高了代码的可读性和安全性(这时候就可以不用担心数组越界的问题)。相对于for语句来说是一个很好地补充,提倡在能使用foreach的地方尽量使用foreach不要再使用for。在使用到索引的地方,foreach显得力不从心,这个时候是使用for语句的时候。
网友评论