gpt4 book ai didi

java - 流式传输 map 以增加值(value)

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

我有一段工作代码,对我来说看起来有点笨拙。我想让它变得更加函数式编程风格,但我正在努力。我想知道是否有人可以提供帮助(或者也许这是最好的方法?)?

private Map<String, Integer> container;

public void addItemToMap(String item, Integer quantity ){

if(container.containsKey(item)){
container.compute(item, (k,v ) -> Integer.valueOf(v+quantity));
}else{
container.put(item, quantity);
}
}

谢谢。

最佳答案

您可以将 if-else 替换为以下一行:

container.compute(item,(k,v) -> v == null ? quantity : Integer.valueOf(v+quantity));

在上面的例子中。假设存在非空值。

但是,正如 Sotirios 在评论中提到的,以及 Map.compute doc 中也提到的,最好使用Map.merge在这里,如下( ref ):

map.merge(item, quantity, Integer::sum)

关于java - 流式传输 map 以增加值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48488100/

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