for和foreach区别:
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。
1.foreach操作对象为集合,如果只是遍历集合和数组,用foreach好些,快些。
2.如果对集合中的值进行修改,就要用for循环。
其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。
3.foreach不需要利用下标操作,不用提前知道遍历多少次,for则相反。
例如:
for(Stringaid:list){
所以foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句。
foreach操作多维数组:
例如:
public static void main(String [] args){
int arr[][] = new int[3][4];
for(int i = 0; i<3; i++)
for(int j = 0; j<4; j++){
arr[i][j] = i + j;
}
for(int x[]:arr){//注意x的声明方式;
for(int y:x){
System.out.print(y);
System.out.print(' ');
}
System.out.println();
}
}
结果为:
0 1 2 3
1 2 3 4
2 3 4 5
for可以不逐个遍历,比如每隔一个遍历一个,也可以从前向后遍历,从后向前,但是foreach不能从后向前遍历,只能从前向后,并且foreach只能逐个遍历。在foreach中不能向迭代变量赋值。
本文地址:http://bbs.it-home.org/forum.php?mod=viewthread&tid=630
内容来源:程序员之家(http://bbs.it-home.org/)
本文地址:http://bbs.it-home.org/forum.php?mod=viewthread&tid=630
内容来源:程序员之家(http://bbs.it-home.org/)
for可以不逐个遍历,比如每隔一个遍历一个,也可以从前向后遍历,从后向前,但是foreach不能从后向前遍历,只能从前向后,并且foreach只能逐个遍历。在foreach中不能向迭代变量赋值。
本文地址:http://bbs.it-home.org/forum.php?mod=viewthread&tid=630
内容来源:程序员之家(http://bbs.it-home.org/)
本文地址:http://bbs.it-home.org/forum.php?mod=viewthread&tid=630
内容来源:程序员之家(http://bbs.it-home.org/)
for可以不逐个遍历,比如每隔一个遍历一个,也可以从前向后遍历,从后向前,但是foreach不能从后向前遍历,只能从前向后,并且foreach只能逐个遍历。在foreach中不能向迭代变量赋值。
本文地址:http://bbs.it-home.org/forum.php?mod=viewthread&tid=630
内容来源:程序员之家(http://bbs.it-home.org/)
本文地址:http://bbs.it-home.org/forum.php?mod=viewthread&tid=630
内容来源:程序员之家(http://bbs.it-home.org/)
for可以不逐个遍历,比如每隔一个遍历一个,也可以从前向后遍历,从后向前,但是foreach不能从后向前遍历,只能从前向后,并且foreach只能逐个遍历。在foreach中不能向迭代变量赋值。
本文地址:http://bbs.it-home.org/forum.php?mod=viewthread&tid=630
内容来源:程序员之家(http://bbs.it-home.org/)
本文地址:http://bbs.it-home.org/forum.php?mod=viewthread&tid=630
内容来源:程序员之家(http://bbs.it-home.org/)