gpt4 book ai didi

java - 如果 Java 8 样式中存在值,如何从 HashMap 中删除

转载 作者:搜寻专家 更新时间:2023-11-01 01:15:27 28 4
gpt4 key购买 nike

有一个Map<String, List<String>> .我想从 List 中删除一个值如果Map包含一个 key 。

但有没有办法以 Java 8 风格做到这一点?比如可能使用计算、合并或其他一些新方法?

旧式从列表中删除元素的代码:

public class TestClass {


public static void main(String[] args) {
Map<String, List<String>> map = new HashMap<>();
map.put("key1", getList());
map.put("key2", getList());

//remove
if (map.containsKey("key1")) {
map.get("key1").remove("a2");
}
System.out.println(map);
}

public static List<String> getList(){
List<String> arr = new ArrayList<String>();
arr.add("a1");
arr.add("a2");
arr.add("a3");
arr.add("a4");

return arr;
}
}

最佳答案

你可以使用 Map.computeIfPresent()但改进值得怀疑:

map.computeIfPresent("key1", (k, v) -> { v.remove("a2"); return v; });

关于java - 如果 Java 8 样式中存在值,如何从 HashMap 中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55382727/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com