2013-01-13 56 views
0

間接(在Java 7中)可以在List中排序元素嗎?假設列表的元素是帖子,它具有amits(屬性類型Post)id,文本,時間戳(毫秒從1970年 - 只是數字類型長)。 帖子存儲在數據庫(MySQL)中,它們是由於不同的SELECT引起的。這是因爲帖子是推特上的推文 - 添加了用戶的帖子,用戶關注的用戶帖子以及其他人的帖子。這個想法是做一些SELECTS,每個都得到結果作爲列表,這些列表將被添加到一個列表中,我想通過屬性(時間戳)來排序。是否有任何簡單的方法通過這個屬性(時間戳)間接地對它進行排序(從高到低 - 從最新到最舊的帖子)?我知道List有屬性排序,我應該可以做些什麼。java中的排序列表中的排序

+1

爲您的Post類編寫一個'Comparator',並使用'Collections.sort(list,comparator)' – atomman

+0

@ SJuan76 FYI,在空格中使用%20並且在鏈接註釋中使用\轉義parens。 –

+0

但我不知道該怎麼寫那該死的比較器。 – user1097772

回答

0

您可以使用Order By子句查詢數據庫以按照時間戳的順序得到結果,那麼您不必在java端進行排序。

+0

不可能或太複雜的查詢,因爲我在我的問題中寫道我從數據庫上的多個SELECT列表中,我會做一個選擇,第二,第三,...(因爲我對他們有不同的要求),然後我會對它進行排序。 – user1097772

2

你可能想用一個Set,並且更具體地SortedSet(基本實現它是一個TreeSet),而不是List。但是,這將要求您的職位類實現Comparable

當然,在數據庫級別總是有ORDER BY的選項。這樣你就可以使用經典的List

+0

我不確定 - 當我使用Set時,排序的屬性是不是唯一的問題?理論上可能有更多的帖子具有相同的時間戳。 – user1097772

+0

您不僅限於比較時間戳。你說他們有一個ID,這是非常獨特的:如果時間戳相同,比較ID。 – fge