【发布时间】:2021-12-07 04:10:26
【问题描述】:
我有一个类 client,其中包含 Orders 列表,其中还包含 LocalDate order_date。
使用 Java 8 流,我想按日期对订单列表进行排序。
我有以下代码:
clients.getOrders().stream().map(Order::getDate).sorted(LocalDate::compareTo)).forEach(System.out::println)
但这绝对不会排序。我也试过sorted(Comparator.comparing(Order::getDate)),但打印出来的结果是一样的。
编辑:
日期不同,我的整个代码行是这样的
clients.stream().filter(client -> client.getOrders() != null).flatMap(c -> c.getOrders().stream().map(Order::getDate).sorted(LocalDate::compareTo)).forEach(System.out::println)
我的输出是
2019-02-17
2019-12-05
2020-03-15
2018-10-05
2020-07-15
2021-01-01
Process finished with exit code 0
我想要这个
2018-10-05
2019-02-17
2019-12-05
2020-03-15
2020-07-15
2021-01-01
【问题讨论】:
-
我无法重现此问题。一些示例输入和输出会很好,以及您正在使用的 Java 版本。
标签: java sorting java-stream localdate