以下代码尝试通过java8流更改数组值。但是一个有效,而其他无效。因此,我想知道流中更改数据本身的原理是什么。
@Test
public void localTest() throws Exception {
int[][] data = new int[][]{{1, 1}, {2, 2}, {3, 3}};
// the data does not change
Arrays.stream(data)
.map(e -> {
e[1]--;
return e;
});
// the data is changed to (10)(21)(32)
Arrays.stream(data)
.map(e -> {
e[1]--;
return e;
})
.forEach(e -> System.out.println(e[0]));
}