for循环增强

1 for(声明语句 : 表达式) { 
2     //代码句子
3  }

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

 

其语法如下:

for(元素数据类型 变量:数组或者Collection集合){使用变量即可}

 

http://www.cnblogs.com/mengdd/archive/2013/01/21/2870019.html

for的应用;

首先增强for循环和iterator遍历的效果是一样的,也就说增强for循环的内部也就是调用iteratoer实现的,

但是增强for循环有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。

---------------------------------------

1           Circlelist[] tempArr = new Circlelist[radix];
2 //        for (Circlelist tempList : tempArr) {
3 //            tempList = new Circlelist();
4 //        }
5           for (int l = 0; l < tempArr.length; l++) {
6               tempArr[l] = new Circlelist();
7         }

为什么第一个增强for循环不能对tempArr数组的每个成员进行初始化,而第二个普通的for循环却可以?

增强for循环是只读操作。

相当于:

1 for (int i = 0; i < tempArr.length; i++) {
2     Circlelist tempList = tempArr[i];  //读取数组元素值放到一个临时变量中
3     ....... //其它代码,使用这个临时变量
4 }

并没有实际改变数组元素的值,所以无法完成初始化操作。

只是改变了circlelist变量的指向,并没有给tempArr[l] 赋值。

posted @ 2019-04-22 17:30  长袖保暖  阅读(190)  评论(0编辑  收藏  举报