黑马程序员技术交流社区
标题:
Foreach增强for的一个疑问,求大神解答
[打印本页]
作者:
黑马-小龙
时间:
2013-1-25 22:28
标题:
Foreach增强for的一个疑问,求大神解答
本帖最后由 张向辉 于 2013-1-26 16:56 编辑
public class Foreach {
/**
* @param args
*/
public static void main(String[] args) {
int[] arr = { 1, 3, 4, 6 };
for (int i = 0; i < arr.length; i++) {
// System.out.println(arr
);
}
for (int arr1 : arr) {
System.out.println(arr1);
}
}
}
求大神讲解下,增强for和普通for有什么区别?都一样的,在这个点上迷惑了好久,求解释啊。
作者:
黄锦成
时间:
2013-1-25 22:56
//使用增强for需要注意的几个问题:增强for只适合取数据,不能改变
//想改变数据,只能用传统的for来操作
@Test
public void test7(){
int[] arr = {1,2,3};
for(int i : arr){
i = 10;//只是定义了个局部i变量来接收数据
}
for(int i=0;i<arr.length;i++){
arr[i] = 10;
}
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
List list = new ArrayList();
list.add(1);
for(Object obj : list){
obj = "10";//改变指向而已
}
System.out.println(list.get(0));
}
作者:
李光耀
时间:
2013-1-25 23:05
普通for可以完成对语句执行很多次,因为可以定义控制循环的变量和条件。
增强for是一种简化形式, 他必须要有被遍历的目标,该目标要么是数组,要么是Collection单列集合。
对数组的遍历如果仅仅是获取数组中的元素,可以使用增强for
如果是对数组的角标进行操作,建议使用普通for.
作者:
王溢君
时间:
2013-1-25 23:33
本来二个for的在遍历元素方面就是一样的,,,不过要改变数组元素的话。增强for不行。
增强for循环:是一种简化形式,它必须有遍历的目标,该目标要么是数组要么是collection中的单列集合。仅仅是为了获取数组中的元素可以使用高级for.
传统for循环:可以完成对循环执行多次,因为可以控制循环的增量和条件。对数组角标进行操作建议使用传统for.
另外:foreach不可以直接遍历map,因为map中存储的是键值对,但可以将map转成单列set,就可以用了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2