java8流更改数据本身的原理是什么?

时间:2018-09-12 07:38:00

标签: java java-stream

以下代码尝试通过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]));

}

0 个答案:

没有答案