当前位置: 首页 > 知识库问答 >
问题:

GroupingBy结果为List

唐彬炳
2023-03-14

我们有以下内容:

public List<Balance> mapToBalancesWithSumAmounts(List<MonthlyBalancedBooking> entries) {
    return entries
      .stream()
      .collect(
        groupingBy(
          MonthlyBalancedBooking::getValidFor,
          summingDouble(MonthlyBalancedBooking::getAmount)
        )
      )
      .entrySet()
      .stream()
      .map(localDateDoubleEntry -> new Balance(localDateDoubleEntry.getValue(), localDateDoubleEntry.getKey()))
      .collect(toList());
  }

共有1个答案

戚建白
2023-03-14

这是不可能的,因为您在映射到balance对象时查找的值只有在MonthlyBalancedBooking列表的所有条目都被迭代之后才能被计算。

new Balance(localDateDoubleEntry.getValue(), localDateDoubleEntry.getKey())

在单个终端操作中移动流的另一种方法是使用collectingandthen作为:

public List<Balance> mapToBalancesWithSumAmounts(List<MonthlyBalancedBooking> entries) {
    return entries.stream()
            .collect(Collectors.collectingAndThen(
                    Collectors.groupingBy(MonthlyBalancedBooking::getValidFor,
                            Collectors.summingDouble(MonthlyBalancedBooking::getAmount)),
                    map -> map.entrySet().stream()
                            .map(entry -> new Balance(entry.getValue(), entry.getKey()))))
            .collect(Collectors.toList());
}
 类似资料:
  • 我想合计帐单的净额,但第一张帐单应该按billNumber、date和CustomerID合计。 所以这个程序的结果应该是:30.50 34.50 15.00 10.00 目前它只按BillNumber聚合。

  • 问题内容: 目前,我正在编写一个应用程序(使用TargetiOS6,已启用ARC),该应用程序使用JSON进行数据传输,并使用CoreData进行持久存储。JSON数据是通过PHP脚本通过json_encode从MySQL数据库生成的。 我的问题是,对于某些表中的数据,以下代码将失败: 程序始终在显示self.jsonSerializationResult的行上崩溃并显示EXC_BAD_ACCES

  • 问题内容: 我已经检查了很多其他线程,因为它们无法使用Django中的静态文件应用程序提供静态内容,但尚未找到解决方案。 settings.py 模板 相关行… 日志 从日志看来,路径是正确的,但可惜它仍然会产生404。 问题答案: 对于本地提供的静态文件, 如果您尚未 设置任何形式的静态文件收集并且运行的是Django 1.3+,我相信这是您引用静态文件时应采用的方式 注意,我在这里省略了。这是

  • 我正在制作一个php注册脚本,注册工作正常,所有内容都已成功输入数据库,激活电子邮件工作正常,但每当我使用mysqli查询来选择或更新信息时,它都不起作用。 例如,当我使用我知道数据库中存在的帐户登录时,它告诉我用户名不存在,当单击电子邮件中的激活链接时,查询无法以相同的方式更新数据库。 我相信这是一个非常简单的错误,我忽略了我的新手,但我找了几个小时后找不到合适的答案。我真的不确定问题出在哪里。

  • 我正在使用Pycharm并试图将文本打印到控制台 最终打印命令('

  • 这在99%的情况下都有效,但有时会导致,留下以下StackTrace: 我尝试实现一个重试策略,使用和使用手动执行递归方法调用,以便给出重新建立连接的时间。 有时连接在10秒后恢复,有时在60秒后恢复,通常永远不会恢复(或者直到我对方法的递归调用击中,大约30分钟后,但取决于线程进入Hibernate状态的时间)。从逻辑上讲,我不能拥有我系统中这个不稳定的部分。 有人知道为什么会出现这个异常吗?如