【发布时间】:2020-09-16 11:36:22
【问题描述】:
我正在尝试根据 java 8 中的可为空的 ArrayList 对列表进行排序。
列举如下
Patient1 visits = [02/15/2010, 02/10/2010]
Patient2 visits = [02/16/2010]
Patient3 visits = [02/17/2010, 02/10/2010]
Patient4 visits = null
我正在尝试使用流排序根据访问日期的降序(访问列表中的第一个元素)对患者对象进行排序。空值应放在最后。最终结果必须是
Patient3 visits = [02/17/2010, 02/10/2010]
Patient2 visits = [02/16/2010]
Patient1 visits = [02/15/2010, 02/10/2010]
Patient4 visits = null
Patient {
String name;
List<Date> visits;
}
我尝试了以下方法,但即使在空检查后也出现空指针异常。
list.stream()
.sorted(Comparator.nullsLast((Comparator.comparing(s -> s.getVisits() == null ? null : s.getVisits().get(0), Collections.reverseOrder()))))
.collect(Collectors.toList());
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
标签: java java-8 java-stream