使用 ForEach 循环查找列表中的最后一个元素

问题描述 投票:0回答:1

我正在尝试查找与 User 关联的最新订单,我必须使用 forEach 循环反向迭代才能找到最新订单。

这是我的代码:

public Optional<Order> lastOrderFrom(User user, List<Order> orderList) {
        Optional<Order> result = 
                orderList
                .stream()
                .filter(order -> order.getUser().equals(user))
                .collect(Collectors.toCollection(result::new))
                .forEach(i -> System.out.println(user));

        return result;
    }
java foreach
1个回答
0
投票

您可以使用

ListIterator
进行反向迭代:

for (ListIterator<Order> iter = orderList.listIterator(orderList.size());
        iter.hasPrevious(); ) {
    Order order = iter.previous();
    if (order.getUser().equals(user)) {
        return Optional.of(order);
    }
}
return Optional.empty();
© www.soinside.com 2019 - 2024. All rights reserved.