【发布时间】:2020-01-24 10:15:24
【问题描述】:
我对编程很陌生,并且学习了 Java 中的 forEach 循环。据我所知,它是经典 for 循环的较短版本。我的问题是,如何使用 forEach 将值保存到数组中还是只读的?
int[] arr = new int[5];
for (int i = 0; i < arr.length; i++) {
arr[i] = i;
}
for (int i : arr) {
arr[i] = i;
}
但我的数组是 [0,0,0,0,0]。 (当然是,但我可以修改它吗?)
如果没有,还有其他方法可以代替正常的 for 循环吗?
【问题讨论】:
-
forEach方法不允许您直接访问索引,只能访问元素本身...我的意思是不使用流的那个...这个:for (int i : arr) { ... } -
int[] arr = IntStream.range(0, 5).toArray();. -
“据我所知,它是经典 for 循环的较短版本”,它是 增强 for 循环的一种严重受限的形式。 (您不能中断/返回、抛出检查异常、从 lambda 之外分配变量等)。
-
别叫
forEach,那是流中使用的方法;它被称为增强的for循环或,通常称为for-each循环