2012-05-11 155 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

沒問題,夥計。聽到那個消息很開心! –