2013-10-12 165 views
1

我有一個ArrayList列表,每個ArrayList包含一個日期和一個字符串。我想根據數組列表中的日期對列表進行排序。我試圖尋找答案,但無法在網上找到它。大多數示例都按日期排序對象列表。有什麼建議麼?在ArrayList中按日期對ArrayList列表進行排序

public List<ArrayList> SuggestionReport() { 
    Query q = em.createQuery("SELECT s FROM SuggestionEntity s"); 
    List<ArrayList> report = new ArrayList(); 
    for (Object o : q.getResultList()) { 
     suggestionEntity = (SuggestionEntity) o; 
     ArrayList suggestion = new ArrayList(); 
     suggestion.add(suggestionEntity.getSuggestionDate()); 
     suggestion.add(suggestionEntity.getContent()); 
     report.add(suggestion); 
    } 

    return report; 
} 

ps。我想返回列表

+2

您可以通過date.try查詢這個SQL「SELECT■從SuggestionEntity的訂單由s.suggestionDate遞減」 .the「s.suggestionDate」是你的數據庫字段。比對結果已經排序。 –

+0

http://stackoverflow.com/questions/2784514/sort-arraylist-of-custom-objects-by-property – Salem

回答

4

不需要寫額外的代碼,只需將查詢更改爲

SELECT s FROM SuggestionEntity s order by suggestion_date ASC|DESC 

其中suggestion_date是您的專欄名稱。

ASC|DESC是您想要的訂單,根據您的需求選擇ASCDESC

這裏瞭解更多關於order by

+0

非常感謝!但是,這適用於Java ejb查詢以及? – ayampenyet

+0

當然,它支持'sql'嗎?語法可能會改變。但概念是一樣的。 :) –

+0

非常感謝您的幫助!欣賞它:) – ayampenyet

0

你應該寫自己比較之前的列表進行排序,然後像下面的排序是:

Collections.sort(list, myComparator); 
相關問題