我有一个对象的数组列表
数组列表中的对象是大学的信息,名为'ModuleInfo'(课程,作业, dateDue )
dateDue已格式化为整数YYYYMMDD(来自日历)
我已经看过人们做过这些事情的其他一些方式,但我无法理解我需要做的事情。
理想情况下,因为我已经在创建数组列表时声明它将包含'ModuleInfo'对象,我可以只使用Collection.sort(moduleDB,ModuleInfo.getDateDue)或者其他内容。 moduleDB是数组列表
非常感谢任何帮助。
答案 0 :(得分:5)
如果要使用Collections.sort(List list)
对列表进行排序,则对象必须实现Comparable
接口。
public class ModuleInfo implements Comparable<ModuleInfo> {
/* Your implementation */
public int compareTo(ModuleInfo info) {
if (this.dateDue < info.dateDue) {
return -1;
} else if (this.dateDue > info.dateDue) {
return 1;
} else {
return 0;
}
}
}
然后致电Collections.sort(moduleDB)
,其中moduleDB
的类型为ArrayList<ModuleInfo>
。
P.S。如前一篇文章所述,您还可以让您的类实现Comparator
接口以获得相同的结果。