前言
在开发中,因为业务需求,需要对某一字段,对list数据进行排序,在Java8之间,我们使用的是list中的sort方法,当遇到字段数据为空时,需要结合Comparator对数据进行排序。Java8之后的话,我们一般都是以stream流方式,对数据进行排序
具体的实现排序
Java8之前
jsonObjects.sort(Comparator.comparing(o -> ((JSONObject) o).getDouble("data"),Comparator.nullsFirst(Double::compareTo)).reversed());
Java8之后
jsonObjects.stream().sorted(Comparator.comparing(obj -> ((JSONObject) obj).getDouble("data"),Comparator.nullsFirst(Double::compareTo)));
说明备注
其中Comparator.nullsFirst是为了防止字段数据为空,从而报空指针异常的错误,nullsFirst是将字段为空的数据往前排。reversed是反转数据的。两者结合,就是将所有的空元素将被排在最后。
评论区