使用forEach修改map的值

nim*_*o23 5 java-8 java-stream

我有一个HashMap并希望通过附加另一个字符串"hello"来更改值(这是一个字符串).

HashMap<User, String> all = new HashMap<>();
mymap.forEach((k, v) -> v = v + " hello");
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用,"mymap"没有变化.怎么了?

Mis*_*sha 8

这是工作Map#replaceAll:

mymap.replaceAll((k, v) -> v + " hello");
Run Code Online (Sandbox Code Playgroud)

  • 它将`BiFunction`应用于地图中的每个条目,并将值替换为结果 (3认同)