我有一个房间清单。这些房间可以由某个人在特定日期使用,也可以计划将来在没有特定日期的情况下使用。 起初它运行得非常好,但是由于我们允许日期使用空值,因此我不能再使用这种排序方法了。 最重要的是,应首先按人对它进行排序,然后再列出日期。空值应位于每个人列表的底部。我尝试使用nullFirst()进行了一些尝试,但是没有编写出无错误的代码:D大多数在线示例仅具有一个比较,而不是两个。 (此人永远不会为空)
roomTOs.sort(Comparator
.comparing(
personTO::getPersonName)
.thenComparing(
personTO::getUsedDate));
答案 0 :(得分:2)
如果我理解正确,那么您需要这样的东西:
roomTOs.sort(Comparator
.comparing(
personTO::getPersonName)
.thenComparing(
personTO::getUsedDate, Comparator.nullsLast(Comparator.naturalOrder()))
);