我有一个ArrayList
,它包含一个复杂对象的集合
该对象有一个日期字段
我想从这个日期开始对我的列表进行排序。
在示例中
class Student{
int ID;
Date joinDate;
}
ArrayList <Student> students;
如何从joinDate
?
答案 0 :(得分:1)
在Student class中实现Comparable接口
然后你必须在学生班中重写以下方法
public int compareTo(Reminder o) {
return getJoinDate().compareTo(o.getJoinDate());
}
然后使用内置的集合类排序方法按日期对对象进行排序
Collections.sort(students);
答案 1 :(得分:0)
实施Comparable和方法compareTo
public class Student implements Comparable<Student>{
public int compareTo(Student otherStudent){
// compare the two students here
}
}
Collections.sort(studentsArrayList);
答案 2 :(得分:0)
写一个Comparator
并将其传递给sort函数。它比改变数据类只是为了提供一种排序要好得多。
Collections.sort(students, new Comparator<Student>() {
public int compare(Student e1, Student e2) {
return e1.joinDate.compareTo(e2.joinDate);
}
});
或者在java 8中:
Collections.sort(students, (e1, e2) -> e1.joinDate.compareTo(e2.joinDate));
有关详细信息,请查看此tutorial。