【发布时间】:2019-06-14 12:58:57
【问题描述】:
我有一个实体列表Entity,其中包含id 和createdDate 字段。我想将它们排序如下:
- 更高
id第一 - 如果
idnull,则最近的createdDate优先
我尝试了以下失败,因为当id 为空时它会抛出NullPointerException
Comparator comp = Comparator
.nullsFirst(Comparator.comparing(e -> ((Entity) e).getId()))
.thenComparing(e -> ((Entity e).getCreatedDate())
.reversed();
entities.stream().sorted(comp).findFirst();
就我所见,Comparator.nullsFirst 在实体为空时处理,而不是在要比较的字段为空时处理。我该如何处理这种情况?
【问题讨论】:
标签: java sorting java-8 java-stream