Java 8 lambda不会更改数据

krz*_*kov 3 lambda java-8

好吧,我正在挖掘Java8 lambda,我正面临以下问题 - lambda不会改变数据:

DamnLambda.class:

public static void inc ( List<Integer> list, Funtion<Integer,Integer> func) {

    for(Integer intr : list) {
        intr = func.apply(intr);
    }
Run Code Online (Sandbox Code Playgroud)

我们试着调用:

List<Integer> l = Arrays.asList(1,2,3);

DamnLambda.inc(l, x -> x+=1);
System.out.println(l); //[1,2,3] ? Why not [2,3,4] ?
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么它不会改变任何数据.我也尝试了不同版本的相同功能:

l.forEach(x -> x+1); //same thing, doesn't change the data.
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

Bri*_*etz 8

怎么样:

list.replaceAll(x -> x+1);
Run Code Online (Sandbox Code Playgroud)