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

标签 java sorting object arraylist

我有一个对象数组列表

Array List 中的对象是名为“ModuleInfo”的大学信息(类(class)、作业、dateDue)

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

我已经了解了人们完成此操作的其他一些方法,但我无法理解我需要做什么。

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

如有任何帮助,我们将不胜感激。

最佳答案

如果你想使用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界面以获得相同的结果。

关于java - 根据对象中的变量对对象数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10545300/

相关文章:

python - python中的复合排序

c - indexx() Numerical Recipes (C) 索引排序算法奇怪地忽略前两个元素

c++ - 该 vector 按哪个值排序?

java - 检查不同对象的空值

java - 关于 "+"运算符及其 StringBuilder 实现

java - Spring boot - MySQL 设置不起作用

java - 如何转换特殊字符, "Fran%c3%a7ais"-> "Français"?

java - Android 通知永远不会显示

java - 初始化接口(interface)?

c# - 使用 BinaryFormatter 序列化/反序列化对象列表