5

我有一个对象数组列表

数组列表中的对象是名为“ModuleInfo”的大学信息(课程、作业、日期到期

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

我已经研究了人们这样做的其他一些方法,但我无法理解我需要做什么。

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

任何帮助将非常感激。

4

1 回答 1

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)where moduleDBhas type ArrayList<ModuleInfo>

ps 如上一篇文章所述,您还可以让您的类实现该Comparator接口以获得相同的结果。

于 2012-05-11T04:18:05.707 回答