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] 赋值。

猜你喜欢

转载自www.cnblogs.com/hawk-li/p/10751435.html