首先定义一个包含字符串日期的数据对象
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