2014-01-06 16 views
1

我有自定義對象包含日期,我動態創建並填充數據(名稱,日期等),並添加到列表中,並添加所有對象到列表中我想根據自定義對象的日期(從LATEST到OLDEST)對列表進行排序。 我如何在Java中實現它?自定義對象的排序列表包含在java中從最新到最早的日期

請給我提供一些示例示例的解決方案。

謝謝。

+1

請提供您所做的一切。 –

+0

比較器接口是你的答案... http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/ – TheLostMind

+1

這將有所幫助。 http://www.thejavageek.com/2013/06/17/sorting-user-defined-objects-part-1/ –

回答

1

查找兩個日期之間的區別,你可以比較值。隱蔽日期,數值(長),比比較,而不是使用像減法等
公共類CompareObjects算術運算實現比較{

@Override 
public int compare(classA c1, classA c2) { 
    long value1 = c1.getDate().getTime(); 
    long value2 = c2.getDate().getTime(); 
    if (value2 > value1) { 
     return 1; 
    } else if (value1 > value2) { 
     return -1; 
    } else { 
     return 0; 
    } 
} 

public static void main(String[] args) { 
    classA o1 = new classA(); 
    o1.setDate(new Date()); 

    classA o2 = new classA(); 
    o2.setDate(new Date()); 
    CompareObjects compare = new CompareObjects(); 
    int i = compare.compare(o1, o2); 
    System.out.println(" Result : " + i); 

} 

}

或無需轉換就可以直接返回結果。

return c2.getDate()。compareTo(c1.getDate());

比較後可以使用Collection.sort方法來設置順序。

+0

Dint得到它究竟如何解決我的問題,我只是希望我的自定義對象根據日期從最新到最舊列表中排序。請爲我提供基於日期排序列表的示例。 – piks

+0

@piks這是答案中的最後一句話 - 你使用'Collections.sort'傳遞你的列表和比較器的一個實例。 –

+0

謝謝伊恩:)。現在工作正常。 – piks

0

你可以使用自定義Comparator然後Collections.sort(collection, yourComparatorInstance);

相關問題