Java 8 字符串日期排序

首先定义一个包含字符串日期的数据对象
java 8

public class ObjectDto implements Serializable {
    private static final long serialVersionUID = 8589835559483231840L;
    private String date;
  //get set..
}

接下来初始化一些数据,并进行排序


​​​​​​​

public static void main(String[] args){
     List<ObjectDto> list = new ArrayList()<>;
     ObjectDto on1 = new ObjectDto();
     on1.setDate("2018-05-17");

        ObjectDto on2 = new ObjectDto();
        on2.seDate("2018-05-16");

        ObjectDto on3 = new ObjectDto();
        on3.setDate("2018-05-18");

        ObjectDto on4 = new ObjectDto();
        on4.setDate("2018-05-15");
    
    list.add(on1);
    list.add(on2);
    list.add(on3);
    list.add(on4);

  //升序
  List<ObjectDto> collect = list.stream().sorted(new Comparator<ObjectDto>() {
      @Override
      public int compare(ObjectDto o1, ObjectDto o2) {
          try {
              Date d1 = DateUtil.parseTime(o1.getDate(), "yyyy-MM-dd");
              Date d2 = DateUtil.parseTime(o2.getDate(), "yyyy-MM-dd");
  
              return d1.compareTo(d2);
          } catch (ParseException e) {
              e.printStackTrace();
          }
          return 0;
      }
  }).collect(Collectors.toList());
}

核心点在于Java 8的stream,以及内部的字符串日期转换为Date日期进行比较。

原创文章,作者:jamestackk,如若转载,请注明出处:https://blog.ytso.com/243765.html

(0)
上一篇 2022年4月11日
下一篇 2022年4月11日

相关推荐

发表回复

登录后才能评论