JAVA8新特性lambda表达式(时间为空排序)

对象时间排序,如果时间为空放到最后


public class DataVo {

    /**
     * ID
     */
    private String id;

    /**
     * 时间
     */
    private Date date;
}

 public static void main(String[] args) {

        List<DataVo> dataVos = new ArrayList<>();
        DataVo dataVo1 = new DataVo();
        dataVo1.setDate(new Date());
        dataVo1.setId("1");
        dataVos.add(dataVo1);

        DataVo dataVo2 = new DataVo();
        dataVo2.setId("2");
        dataVos.add(dataVo2);

        DataVo dataVo3 = new DataVo();
        dataVo3.setId("3");
        dataVo3.setDate(new Date());
        dataVos.add(dataVo3);

        dataVos = dataVos.stream().sorted(Comparator.comparing(d -> d.getDate(), Comparator.nullsLast(Date::compareTo))).collect(Collectors.toList());

        dataVos.forEach(data -> System.out.println(data));
    }
  • 结果
DataVo{id='1', date=Tue Aug 20 10:07:49 CST 2019}
DataVo{id='3', date=Tue Aug 20 10:07:49 CST 2019}
DataVo{id='2', date=null}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容