我有一个名为Course的对象的ArrayList,我试图通过courseID和courseStartTime以两种方式对它进行排序.
编辑:澄清我的意思是我想在某个时间点按courseID对其进行排序,然后在另一个时间按courseStartTime对其进行排序.
class Course implements Comparable<Course> {
private int courseID;
private String courseBeginTime;
@Override
public int compareTo(Course course) {
//what to return?
}
Run Code Online (Sandbox Code Playgroud)
如果我写了两个我自己的比较器,一个用于比较courseID
,另一个用于courseStarTime
,那么compareTo()
类中的方法没有被使用,我不知道要返回什么.
如果我想使用这个compareTo()
方法,我不知道怎么写它所以我可以比较courseID
和courseStartTime
.
小智 8
您可以实现两个不同的比较器.
public class CourseComparatorById implements Comparator<Course> {
@Override
public int compare(Course o1, Course o2) {
// for example - sort ascending by ID
return o1.getId() - o2.getId();
}
}
public class CourseComparatorByStartTime implements Comparator<Course> {
@Override
public int compare(Course o1, Course o2) {
// for example - sort ascending by start time
return o1.getStartTime() - o2.getStartTime();
}
}
Run Code Online (Sandbox Code Playgroud)
然后使用它们对数组进行排序.
List<Course> courses = ...
Collections.sort(courses, new CourseComparatorById());
// now it's sorted by ID
Collections.sort(courses, new CourseComparatorByStartTime());
// now it's sorted by start time
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
425 次 |
最近记录: |