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

Posted

技术标签:

【中文标题】根据对象中的变量对对象的数组列表进行排序【英文标题】:Sorting an Array List of Objects based on a variable in object 【发布时间】:2012-05-19 16:37:18 【问题描述】:

我有一个对象数组列表

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

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

我查看了人们执行此操作的其他一些方法,但我无法理解我需要做什么。

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

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

如果您想使用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&lt;ModuleInfo&gt;

附言如前一篇文章所述,您还可以让您的类实现Comparator 接口以实现相同的结果。

【讨论】:

以上是关于根据对象中的变量对对象的数组列表进行排序的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 Aurelia/Typescript 中的嵌套属性对对象数组进行排序

我们如何根据节点js中的另一个对象数组值对对象数组进行排序

根据总值对对象数组列表进行排序

js对象数组按照另一个数组排序

如何根据GPA对数组列表进行升序排序? arraylist 包含一个对象数组。 (Java)[重复]

如何根据另一个数组的顺序对对象数组进行排序?