增强for循环遍历可以修改
时间: 2023-10-18 07:24:04 浏览: 86
java for循环的几种写法
5星 · 资源好评率100%
可以修改,但是需要注意一些细节。
对于数组或者集合类型的数据,使用增强for循环遍历时,只能读取元素的值,不能修改元素的值。如果需要修改元素的值,可以使用普通的for循环。
例如,对于数组,可以使用以下普通for循环修改元素的值:
```
int[] arr = {1, 2, 3, 4};
for (int i = 0; i < arr.length; i++) {
arr[i] = arr[i] * 2;
}
```
而使用增强for循环修改元素的值会编译报错:
```
int[] arr = {1, 2, 3, 4};
for (int num : arr) {
num = num * 2; // 编译报错
}
```
但是对于某些特殊的集合类型,例如ArrayList,可以使用增强for循环修改元素的值。因为ArrayList的实现方式是基于数组,增强for循环遍历集合时,实际上是遍历了ArrayList内部的数组,因此可以修改元素的值。
例如,对于ArrayList,可以使用以下增强for循环修改元素的值:
```
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
for (int num : list) {
num = num * 2; // 可以修改元素的值
}
```
但是需要注意,这种方式修改元素的值并不会影响到ArrayList本身,因为修改的实际上是内部数组中的元素值,而不是ArrayList中的元素值。如果需要修改ArrayList中的元素值,还是需要使用普通的for循环。
阅读全文