给大家做了个案例,让我们直接贴代码
- 使用list帮助类Collections中的sort()方法重写compare()方法
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
public class Test02 {
public static void main(String[] args) {
List<Student> list = new ArrayList<>();
list.add(new Student(5, "张三", "2020-10-01"));
list.add(new Student(3, "赵五", "2020-01-01"));
list.add(new Student(4, "李四", "2020-05-01"));
list.add(new Student(1, "小张", "2001-10-01"));
list.add(new Student(2, "小李", "2011-01-01"));
List<Student> newList = Test02.ListSort(list);
for (Student stu : newList) {
System.out.println(stu.getId() + "--" + stu.getName() + "--" + stu.getDate());
}
}
public static List<Student> ListSort(List<Student> list) {
// 通过Collections工具类sort方法传list排序
Collections.sort(list, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
Date dt1 = format.parse(o1.getDate());
Date dt2 = format.parse(o2.getDate());
System.out.println("o1:"+o1.toString());
System.out.println("02:"+o2.toString());
System.out.println();
if (dt1.getTime() > dt2.getTime()) {
return 1;// 小的放前面(时间早的)
} else {
return -1;
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
});
return list;
}
}
class Student {
public Student(Integer id, String name, String date) {
this.id = id;
this.name = name;
this.date = date;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", date=" + date + "]";
}
private Integer id;
private String name;
private String date;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}