2012-05-11 118 views
5

我有对象排序基于在对象的变量

在Array列表中的对象是用于大学称为“ModuleInfo”信息的一个数组列表(当然,作业,dateDue)对象数组列表

的dateDue已被格式化成整数YYYYMMDD(从日历)

我已经看了一些其他方式的人已经这样做了,但我不能让我的头围绕它是什么,我需要做。

理想情况下,因为我已经在创建Array List时声明它将包含'ModuleInfo'对象,所以我可以只使用Collection.sort(moduleDB,ModuleInfo.getDateDue)或其他行。 moduleDB是阵列列表

任何帮助将不胜感激。

回答

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)其中具有类型ArrayList<ModuleInfo>

p.s.如前一篇文章中提到的,您也可以让您的班级实施Comparator界面以获得相同的结果。

+0

感谢您的支持。有用! – Hypergiant

+0

没问题,伙计。听到那个消息很开心! –