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

Hyp*_*ant 5 java sorting arraylist object

我有一个对象的数组列表

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

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

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

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

任何帮助将非常感激.

Ale*_*ood 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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后调用Collections.sort(moduleDB)哪里moduleDB有类型ArrayList<ModuleInfo>.

ps如前一篇文章所述,您也可以让您的类实现Comparator接口以获得相同的结果.