java - 更新 map 中列表的内容

标签 java

我有一个 map ,我想要做的是更新 map 指定键的内容。 下面是我的示例代码,我将首先获取并保存到 tempList, 然后更新tempList,然后保存回valueMap;

Map<String, List<Number>> valueMap = new HashMap<String, List<Number>>();

for (Map.Entry<String, Object> entry2 : innerMap.entrySet()) {
    for(String str : titleList){
        if(str.equals(entry2.getKey())){
            List<Number> tempList = valueMap.get(str);
            tempList.add((Number) entry2.getValue());
            valueMap.put(str, tempList);
         }
    }
}

我想知道是否有一种简单/漂亮的方法来执行相同的操作。

更新entry2部分的代码(我以为第一次不会造成困惑,是我的错。)

最佳答案

我不知道entry2是什么,但它可以这样重写:

titleList.stream()
        .filter(entry2.getKey()::equals)
        .forEach(str -> valueMap
                .computeIfAbsent(str, (x) -> new ArrayList<Number>())
                .add((Number) entry2.getValue()));

关于java - 更新 map 中列表的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60520178/

相关文章:

java - Socket发送大量数据时会自动关闭吗?

java - 如何拆分字符串或从字符串中获取正确的文本

java - 在不同平台上从 Java 代码运行 adb shell 命令

java - 使用组合作为 Realm (android)中继承的解决方法?

java - Struts 1.x html :select with default "no selection" value -- best approach?

java - 为什么建议在 ChannelOutboundHandler 中仅使用带有 [byte] 操作的堆缓冲区?

java - Selenium 中的清除日期字段

java - 线程池执行器 : Get a specific Runnable that is being executed

java - 如何读取java中的脚本输出?

java - Mule 表达语言和运算符