[英]sort arraylist in ascending order
我有一個對象數組列表,每個對象包含一個年/月/日/小時屬性。 我最終想要做的是創建一個新的多維數組,通過增加小時來包含一組每個對象。 例如,我想要的最終數組的一個例子是:
array: [0]
[0] 01:04:00, 4-10-09
[1] 01:15:00, 4-10-09
[1]
[0] 02:25:00, 4-10-09
[2]
[0] 06:14:00, 4-10-09
[1] 06:27:00, 4-10-09
[3]
[0] 04:03:00, 4-11-09
[1] 04:11:00, 4-11-09
不過,我很難弄清楚在 Java 中正確排序數組列表。 在將它們插入最終數組之前,我如何按升序對數組列表中的每個部分(年、月、日、小時)進行排序?
謝謝。
查看比較器http://java.sun.com/j2se/1.4.2/docs/api/java/util/Comparator.html
Comparator 是帶有 compare(Object1, Object2) 方法的接口,您可以在其中比較日期然后定義自己的比較器對象,該對象實現比較器,然后使用 Collections.sort(Arraylist, Comparator)
要對集合進行排序,您可以像這樣撥打電話:
List<MyDate> dates = ...
Collections.sort(dates);
MyDate 類將需要實現接口 Comparable,這將需要實現方法“int compareTo(object o)”。
在“compareTo”方法中,您可以編寫代碼來調用年、月等的getter,直到它確定當前對象是否小於、等於或大於對象“o”傳遞給 compareTo 方法。
示例:
public int compareTo(Object o) {
MyDate otherDate = (MyDate) o;
int thisYear = this.getYear();
int otherYear = otherDate.getYear();
if (thisYear < otherYear) return -1;
if (thisYear > otherYear) return 1;
// Now try the month, then day etc
}
在您的時間/日期對象上實現可比較的接口。 然后就像做 Collections.sort 一樣簡單
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.