leftso 8339 0 2020-03-20 14:49:01

文章位置:左搜> 编程技术> Java编程技术> 正文
首先定义一个包含字符串日期的数据对象
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日期进行比较。

评论区域

暂无评论,快来抢首发吧!!!