gpt4 book ai didi

Java:合并两个 HashMap ?

转载 作者:行者123 更新时间:2023-12-02 02:08:01 28 4
gpt4 key购买 nike

我尝试实现自己的合并功能,但它变得越来越复杂并且错误越来越多。我想也许 Java 已经有了这个功能,因为这似乎是一个常见的开发问题。

假设我有两个 HashMaps<String, int> :

 HM1.put(foo,1)
HM1.put(bar,1)

HM2.put(foo,1)
HM2.put(main,1)

当它们合并时,新的 HM2 将是这样的:

 [foo: 2]
[bar, 1]
[main,1]

最佳答案

您可以迭代第二个 map 并动态更新 HM1:

HM2.entrySet()
.forEach(entry -> HM1.compute(
entry.getKey(),
(key, value) -> value == null ?
entry.getValue() :
entry.getValue() + value));

编辑:
最好使用 .merge (由 lexcore 在 this comment 中建议),这样可以避免对缺失的键不必要地运行计算函数:

HM2.entrySet()
.forEach(entry -> HM1.merge(
entry.getKey(),
entry.getValue(),
(key, value) -> entry.getValue() + value));

以上任一操作都会更新 HM1 以获得最终结果。

System.out.println(HM1);

输出:

{bar=1, foo=2, main=1}

关于Java:合并两个 HashMap ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50460205/

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