我试图使用List的流
考虑此数据集(使用JSON使其更易于阅读):
[
{"field1": 1, "field2": 5},
{"field2": 6, "field3": 10},
{"field1": 3, "field4": 15}
]
我希望结果如下(顺序无关紧要):
{"field1": 4, "field2": 11, "field3": 10, "field4": 15}
我想把所有的键加起来,并把它们组合成一张地图。在Java8中,有没有一种很好的方法可以通过流接口实现这一点?
我发现了Collectors.groupingBy(o-
提前谢谢。
计数()
将只返回按应用于每个键的函数分组的值的数量。如果您想对它们求和,您要寻找的下游收集器是SummingInt
(如果您可能有溢出,则为SummingLong
):
import static java.util.stream.Collectors.groupingBy;
import static java.util.stream.Collectors.summingInt;
...
Map<String, Integer> map =
list.stream()
.flatMap(m -> m.entrySet().stream())
.collect(groupingBy(Map.Entry::getKey, summingInt(Map.Entry::getValue)));
问题内容: 我想将两个Map与JAVA 8 Stream合并: 我尝试使用此实现: 但是,此实现只会产生如下结果: 如果中没有包含一个键,则会将其作为新键添加到相应的String列表中。如果键在和中重复,则两个值列表将被合并为:,然后是。 问题答案: 您可以通过遍历中的所有条目并将它们合并到中来实现此目的。 下面通过调用操作消耗每个条目的键和值的位置来遍历的条目。对于每个条目,我们叫上:这将要么创
我想按id分组。 结果应如下所示: 静态编程语言中最惯用的方法是什么?
我试图对对象中的每个条目执行映射操作。 我需要从键中去掉前缀,并将值从一种类型转换为另一种类型。我的代码从 映射实例并使用,这看起来很难看。 还有更好的选择吗?使用for循环似乎更好: 我应该避免使用流API吗?还是我错过了更好的方式?
我有两个(或更多)
我有两个地图 和 类型为
我试图翻译这个(简化)代码使用Java-8流: 以下是我尝试过的: 但以上给出了所有