gpt4 book ai didi

Java Map - 在 getOrDefault 中找不到 key 时的日志消息

转载 作者:行者123 更新时间:2023-12-01 12:31:04 26 4
gpt4 key购买 nike

我有一个 Map<String, List<SomeClass>> someMap我正在检索基于 someKey 的值对于 SomeClass 列表的每个元素,我正在执行其他操作。

someMap.getOrDefault(someKey, new ArrayList<>()).forEach(...)

我还希望能够在找不到 someKey 时记录消息.我如何才能以最佳方式实现它?有没有其他功能/方法可以实现这种行为?

最佳答案

Map<String, List<String>> map = new HashMap<>();
List<String> l = new ArrayList<>();
l.add("b");
map.put("a", l);

是的,您可以在一个语句中完成。使用 .compute() .
map.compute("a", (k, v) -> {
if (v == null) {
System.out.println("Key Not Found");
return new ArrayList<>();
}
return v;
}).forEach(System.out::println);

还有 computeIfAbsent()如果键不存在,它只会计算 lambda。

请注意,来自文档:

Attempts to compute a mapping for the specified key and its current mapped value (or null if there is no current mapping).



这将添加在您的 map 中未找到的 key 。

如果您想稍后删除这些键,只需将这些键添加到 if 内的列表中,并在如下语句中删除它们:
map.keySet().removeAll(listToRemove);

关于Java Map - 在 getOrDefault 中找不到 key 时的日志消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62398056/

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