【问题标题】:modify value of map with forEach用 forEach 修改地图的值
【发布时间】:2017-09-06 18:55:14
【问题描述】:

我有一个 HashMap,想通过附加另一个字符串“hello”来更改值(这是一个字符串)。

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

但是,它不起作用,“mymap”没有改变。怎么了?

【问题讨论】:

    标签: java-8 java-stream


    【解决方案1】:

    这是Map#replaceAll的工作:

    mymap.replaceAll((k, v) -> v + " hello");
    

    【讨论】:

    • 这会替换整个地图吗?例如 mymap.putAll (它也替换了重复的键?)
    • 它将BiFunction应用于地图中的每个条目并用结果替换值
    猜你喜欢
    • 2017-11-17
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    相关资源
    最近更新 更多