gpt4 book ai didi

java - 从 map 填充列表是否有更优雅的解决方案?

转载 作者:行者123 更新时间:2023-12-01 12:35:18 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Best way to create a hashmap of arraylist

(9 个回答)



java8 map how to add some element to a list value simply [duplicate]

(1 个回答)


去年关闭。




我尝试从 map 填充列表。如果列表是 NULL我将创建一个新列表并添加一个新创建的元素,否则将此元素添加到现有列表中。

我想知道在 JAVA8 中是否有更优雅的解决方案。
任何帮助表示赞赏。

Map<String, List<MyObject>> myMap = new HashMap<>();
List<MyObject> list = myMap.get("key");
myMap.put("key", list == null ? Arrays.asList(new MyObject()) : Arrays.asList(list, new MyObject()));

最佳答案

假设 Arrays.asList(list, new MyObject())应该添加一个新的 MyObject实例到 list ,那么是的,您可以使用 Map#computeIfAbsent 使代码更具可读性:

Map<String, List<MyObject>> myMap = new HashMap<>();
myMap.computeIfAbsent("key", key -> new ArrayList<>()).add(new MyObject());

"key"不作为 key 出现在 Map 中,然后将创建一个映射到新的 ArrayList实例(返回)。否则,现有 List将通过调用 computeIfAbsent 返回,允许您向其中添加新元素。

关于java - 从 map 填充列表是否有更优雅的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62410780/

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