2010-01-12 75 views
2

我創建了一個類DateTime(封裝了GregorianCalendar)。我也創建了一個類的事件。 我想創建一個事件集合,從中可以檢索事件的日期。例如: 例如: 事件類型爲Event; date1和date2的類型是DateTime,也是date1.equals(date2); 'events'是我的事件集合。如何將我創建的類設置爲TreeMap中的鍵(Java)

event.put(date1, event) 

將「事件」添加到收藏,這樣我可以通過

event.get(date2) 

我想用樹狀圖中執行該事件集合,因爲我可能想打印排序的所有事件的檢索按日期。

那麼如何將DateTime設置爲TreeMap的關鍵?我應該將什麼添加到DateTime?還有什麼可以做的? 謝謝。

回答

9

你只需要擁有DateTime實施Comparable<DateTime>,東西線沿線的:

class DateTime implements Comparable<DateTime> { 
    GregorianCalendar calendar; 

    ... 

    public int compareTo(DateTime other) { 
    if (calendar.equals(other.calendar)) 
     return 0; 
    else if (calendar.before(other.calendar)) 
     return -1; 
    else 
     return 1; 
    } 
} 

Comparable interface是記錄here

5

有兩種方式:

  1. 製作日期時間實現Comparable <日期時間>。定義compareTo()方法。

  2. 定義一個實現Comparator < DateTime>的類(可以是匿名的)。根據需要定義它的compare()方法。將該類的一個實例傳遞給您的TreeMap的構造函數。

相關問題