当我们需要对某个集合依据某个属性进行排序时,可以采用java的外部比较器排序,生产案例如下:
for (ReversingRespDtoV2.Item item : collect) {
item.getSearchesTrend().sort(Comparator.comparing(StatDto.Trend::getMonth));
}
这种用法如果如果没有判空处理,会报空指针错误,解决方案如下:
for (ReversingRespDtoV2.Item item : collect) {
item.getSearchesTrend().sort(Comparator.comparing(StatDto.Trend::getMonth, Comparator.nullsFirst(Comparator.naturalOrder())));
}
添加Comparator.nullsFirst(Comparator.naturalOrder())) 比较器会做判空处理,非空值再进行比较排序