我有以下TicketDTO件物品:

public class TicketDTO {
    private LocalDate date;
    private Set<OffenceDTO> offences;
}

OffenceDTO个人有一个int字段-penalty points.

public class OffenceDTO {
    private int penaltyPoints;
}

我想通过流式传输每个TicketSet of Offenses来将penalty points加到单个int值中.但前提是门票的日期在最近两年之间.

我收集了过go 两年的罚单,但现在我遇到了一个问题,如何通过犯规和计算他们的积分.

这是我到目前为止所写的内容:

tickets().stream()
    .filter(ticketEntity -> isDateBetween(LocalDate.now(), ticketEntity.getDate()))
    .collect(Collectors.toList());

推荐答案

我想通过流式传输set of tickets来收集单个int值中的penalty points

它可以通过以下步骤完成:

  • 使用flatMap()将过滤后的tickets的流转换为OffenceDTO的流;
  • OffenceDTOmapToInt()中提取penalty points,这将把对象流转换为IntStream
  • 应用sum()即可得到总和.
int totalPenalty = tickets().stream()
    .filter(ticketEntity -> isDateBetween(LocalDate.now(), ticketEntity.getDate()))
    .flatMap(ticketDTO -> ticketDTO.getOffences().stream())
    .mapToInt(OffenceDTO::getPenaltyPoints)
    .sum();

Java相关问答推荐

将Nimbus设置为计算机上运行的所有Java应用程序的默认外观

Java Streams在矩阵遍历中的性能影响

对于几乎不涉及逻辑的请求,您是否应该使用命令模式?

如何才能使我的程序不会要求两次输入?

在Java Swing Paint应用程序中捕获快速鼠标移动时遇到困难

使用Mockito进行的Junit测试失败

Jakarta CDI强制bean构造/注册遗留事件侦听器

try 判断可选参数是否为空时出现空类型安全警告

无法在Java中处理PayPal支付响应

@Rollback @ Transmission在验收测试中不工作

Java构造函数分支

将关闭拍卖的TimerService

如何获得凌空cookies ,并设置它在下一个请求- android

基于Java中mm/dd/yy格式的最近日期对数组列表进行排序

模拟JUnit未检测到返回字符串的方法的任何声纳覆盖

使用@ExceptionHandler的GlobalExceptionHandler还是来自服务器的REST应答的ResponseEntity?

在WHILE()循环初始化部分中声明和初始化变量的Java语法?

如何使用jOOQ在PostgreSQL中从枚举类型生成Java枚举

org.springframework.web.HttpRequestMethodNotSupportedException:请求方法';帖子';不支持

如何使用 JDBC 更改 Postgres Enum 类型