我想做嵌套排序.我有一个课程对象,它有一组应用程序.应用程序具有时间和优先级等属性.现在我想先根据优先级对它们进行排序,并且在优先级内我想按时间对它们进行排序.
例如,给定此类(仅为简洁起见,公共字段):
public class Job {
public int prio;
public int timeElapsed;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用java.util.Collections类中的静态排序(List,Comparator)方法按时间实现排序.这里,创建了一个匿名内部类来实现"作业"的比较器.这有时被称为函数指针的替代(因为Java没有那些).
public void sortByTime() {
AbstractList<Job> list = new ArrayList<Job>();
//add some items
Collections.sort(list, new Comparator<Job>() {
public int compare(Job j1, Job j2) {
return j1.timeElapsed - j2.timeElapsed;
}
});
}
Run Code Online (Sandbox Code Playgroud)
记住compare()方法的契约模型:http://java.sun.com/javase/6/docs/api/java/util/Comparator.html#compare (T,% 20T)
| 归档时间: |
|
| 查看次数: |
1336 次 |
| 最近记录: |