gpt4 book ai didi

java - 如何在 Java 流处理中存储中间状态

转载 作者:行者123 更新时间:2023-11-29 07:23:29 25 4
gpt4 key购买 nike

我有以下 Java 循环:

for (final Long orderNumber : availableOrderIds) {
final List<ReservationDetailResponse> reservations = tryToReserve(orderNumber);
if (successful(reservations)) {
return withReservationIdFrom(reservations);
}
}

和方法:

private boolean successful(final List<ReservationDetailResponse> reservations) {
return !reservations.isEmpty();
}
private Long withReservationIdFrom(final List<ReservationDetailResponse> reservations) {
return reservations.get(0).getReservationId();
}

如何将其转换为流处理?

感谢您的帮助!

最佳答案

使用 map 进行转换,使用 filter 进行条件处理,使用 findFirst 您可以执行以下操作:

return availableOrderIds.stream()
.map(this::tryToReserve)
.filter(this::successful)
.findFirst()
.map(this::withReservationIdFrom)
.orElse(0L); // assumed as default value

此外,如果提供实用程序,您也可以将它们包含在操作中:

return availableOrderIds.stream()
.map(this::tryToReserve)
.filter(res -> !res.isEmpty())
.findFirst()
.map(res -> res.get(0).getReservationId())
.orElse(0L);

关于java - 如何在 Java 流处理中存储中间状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59321620/

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