基于对象中的变量对对象的数组列表进行排序

时间:2012-05-11 04:05:36

标签: java sorting object arraylist

我有一个对象的数组列表

数组列表中的对象是大学的信息,名为'ModuleInfo'(课程,作业, dateDue

dateDue已格式化为整数YYYYMMDD(来自日历)

我已经看过人们做过这些事情的其他一些方式,但我无法理解我需要做的事情。

理想情况下,因为我已经在创建数组列表时声明它将包含'ModuleInfo'对象,我可以只使用Collection.sort(moduleDB,ModuleInfo.getDateDue)或者其他内容。 moduleDB是数组列表

非常感谢任何帮助。

1 个答案:

答案 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接口以获得相同的结果。