Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 流式处理地图以添加值_Java_Java 8 - Fatal编程技术网

Java 流式处理地图以添加值

Java 流式处理地图以添加值,java,java-8,Java,Java 8,我有一段代码,在我看来有点笨重。我想让它更具有函数式编程风格,但我正在努力。我想知道是否有人能帮忙(或者这是最好的方式?) 私有映射容器; 公共void addItemMap(字符串项,整数数量){ if(集装箱箱(项目)){ 计算(项,(k,v)->Integer.valueOf(v+数量)); }否则{ 容器。放置(项目、数量); } } 谢谢 你只是把那张地图当作计数器吗 我建议您使用guava的Multiset:您的函数只是对的调用。您只是将该地图用作计数器吗 我建议使用guava的M

我有一段代码,在我看来有点笨重。我想让它更具有函数式编程风格,但我正在努力。我想知道是否有人能帮忙(或者这是最好的方式?)

私有映射容器;
公共void addItemMap(字符串项,整数数量){
if(集装箱箱(项目)){
计算(项,(k,v)->Integer.valueOf(v+数量));
}否则{
容器。放置(项目、数量);
}
}

谢谢

你只是把那张地图当作计数器吗


我建议您使用guava的Multiset:您的函数只是对的调用。

您只是将该地图用作计数器吗


我建议使用guava的Multiset:您的函数只是对的调用。

您可以使用以下一行代码替换
(如果其他的话)

container.compute(item,(k,v) -> v == null ? quantity : Integer.valueOf(v+quantity));
在上述示例中,假设存在非空值

但是,正如
Sotirios
在注释中提到的,以及在中提到的,最好在此处使用,如下所示()


您可以将
if else
替换为以下一个衬里:

container.compute(item,(k,v) -> v == null ? quantity : Integer.valueOf(v+quantity));
在上述示例中,假设存在非空值

但是,正如
Sotirios
在注释中提到的,以及在中提到的,最好在此处使用,如下所示()


好的,我做完了。我本来打算把它留下,因为它被(正确地)标记为dupe。但很高兴同意这是答案!好的,我做完了。我本来打算把它留下,因为它被(正确地)标记为dupe。但很高兴同意这是答案!
map.merge(item, quantity, Integer::sum)