簡體   English   中英

按升序對數組列表進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM