gpt4 book ai didi

java - 如何使用 Streams 添加嵌套集合中的值

转载 作者:行者123 更新时间:2023-12-01 22:55:48 26 4
gpt4 key购买 nike

我有以下 TicketDTO 对象:

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

并且每个 OffenceDTO 都有一个 int 字段 - penalty points

public class OffenceDTO {
private int penaltyPoints;
}

我想通过流式传输每个 罚单的 违规集罚分加到一个 int。但前提是机票的日期在过去两年之间。

我收集了近两年的罚单,但现在我有一个问题是如何过犯和计算他们的分数。

这是我到目前为止写的:

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

最佳答案

I would like to collect the penalty points in a single int value by streaming the set of tickets

可以通过以下步骤完成:

  • 使用 flatMap() 将过滤后的 tickets 流转换为 OffenceDTO 流;
  • 使用 mapToInt()OffenceDTO 中提取 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 - 如何使用 Streams 添加嵌套集合中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73290512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com