java8中.distinct()和.sum()的组合
我有一个目标:java8中.distinct()和.sum()的组合,java,java-stream,Java,Java Stream,我有一个目标: LocalDate localDate; int amount; 我有这些对象的列表,如: {2018-01-01, 5} {2018-01-01, 10} {2018-01-02, 15} 现在我想得到的是,我想解析当天的金额。 预期结果将列出不重复的金额总和 {2018-01-01, 15} {2018-01-02, 15} 似乎我缺少了一些流方法来实现这一点…使用收集器。groupingBy与下游收集器收集器。Summingit yourObjects.stream(
LocalDate localDate;
int amount;
我有这些对象的列表,如:
{2018-01-01, 5}
{2018-01-01, 10}
{2018-01-02, 15}
现在我想得到的是,我想解析当天的金额。
预期结果将列出不重复的金额总和
{2018-01-01, 15}
{2018-01-02, 15}
似乎我缺少了一些流方法来实现这一点…使用
收集器。groupingBy
与下游收集器收集器。Summingit
yourObjects.stream()
.collect(Collectors.groupingBy(
YourObject::getLocalDate,
Collectors.summingInt(YourObject::getAmount)
))
这只是按日期分组,然后用sum聚合,考虑自己尝试一下,然后用“不工作的代码”问我们。这里的人非常不愿意回答“这里的要求,没有人做这项工作并给我代码。请”的问题。@ernest_k这个提示应该对我有帮助,我会尽力:)你确定
{2018-01-01,26}
顺便说一句吗?是不是应该是{2018-01-01,15}
?@Eugene完全正确,我错配了示例使用您的解决方案作为输入我有列表
,在输出上我有映射
,有没有办法在输出上也有列表
,你不想这样吗?@degath如果你想List
为什么不在你得到的Map
上调用keySet
?