根据对象中的变量对对象数组列表进行排序

5

我有一个对象的数组列表

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

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

我已经查看了其他人做过的一些方法,但是我无法弄清楚我需要做什么。

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

非常感谢您的任何帮助。

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),其中 moduleDB 的类型为 ArrayList<ModuleInfo>
附注:如前一篇文章所述,您也可以让您的类实现 Comparator 接口以实现相同的结果。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接