java jdk8 forEach 更改循环的值
时间: 2023-07-08 15:15:23 浏览: 412
在 Java 8 中,`forEach` 方法是用于遍历集合或数组的一种方法。与 JavaScript 中的 `forEach` 方法类似,Java 8 中的 `forEach` 方法也不会改变集合或数组中的值,而是对每个元素执行给定的操作。
如果你想要修改集合或数组中的元素值,可以使用 Java 8 中的 `replace` 方法。例如:
```java
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3));
list.replaceAll(n -> n * 2);
System.out.println(list); // [2, 4, 6]
```
在上面的例子中,我们使用 `replaceAll` 方法将集合中的每个元素乘以 2。`replaceAll` 方法接受一个 `UnaryOperator` 参数,表示对每个元素执行的操作。在本例中,我们使用 lambda 表达式 `n -> n * 2` 表示将每个元素乘以 2。
对于数组,我们可以使用 Java 8 中新添加的 `Arrays.setAll` 方法来替代 `forEach` 循环。例如:
```java
int[] arr = {1, 2, 3};
Arrays.setAll(arr, i -> arr[i] * 2);
System.out.println(Arrays.toString(arr)); // [2, 4, 6]
```
在上面的例子中,我们使用 `Arrays.setAll` 方法将数组中的每个元素乘以 2。`setAll` 方法接受一个 `IntUnaryOperator` 参数,表示对每个元素执行的操作。在本例中,我们使用 lambda 表达式 `i -> arr[i] * 2` 表示将每个元素乘以 2。
阅读全文