下面是对 List<Date> list 和 List<String> list 格式的时间list排序
/**
* 时间list排序
* @param list
*/
public static void ListSort(List<String> list,String type) {
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
try {
Date dt1 = format.parse(o1);
Date dt2 = format.parse(o2);
if(type.equals("asc")){
if (dt1.getTime() > dt2.getTime()) {
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
return -1;
}
}else if(type.equals("desc")){
if (dt1.getTime() < dt2.getTime()) {
return 1;
} else if (dt1.getTime() > dt2.getTime()) {
return -1;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
});
}
/**
* 时间list排序
* @param list
*/
public static void DateListSort(List<Date> list,String type) {
Collections.sort(list, new Comparator<Date>() {
@Override
public int compare(Date o1, Date o2) {
if(type.equals("asc")){
if (o1.getTime() > o2.getTime()) {
return 1;
} else if (o1.getTime() < o2.getTime()) {
return -1;
}
}else if(type.equals("desc")){
if (o1.getTime() < o2.getTime()) {
return 1;
} else if (o1.getTime() > o2.getTime()) {
return -1;
}
}
return 0;
}
});
}
测试验证:
public static void main(String[] args) throws ParseException {
List<String> list = new ArrayList<>();
list.add("2020-09");
list.add("2020-04");
list.add("2020-01");
list.add("2009-01");
list.add("2021-01");
ListSort(list,"asc");
for (String s:list){
System.out.println(s);
}
System.out.println("******************************");
List<Date> listDate = new ArrayList<>();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
listDate.add(format.parse("2020-09"));
listDate.add(format.parse("2020-04"));
DateListSort(listDate,"desc");
for (Date s:listDate){
System.out.println(format.format(s));
}
}
验证结果: