1
我正在編寫一個調度程序,其中創建的事件標記爲日期。因此,通過選擇日期,將顯示所有標記爲日期的事件。我試圖用谷歌的TreeMultimap做到這一點,但我意識到並不是所有與選定日期相關的記錄都被返回。我想知道是否有任何已知問題使用日期作爲TreeMultimap的關鍵或純粹是我的代碼問題。在Java中使用日期作爲TreeMultimap的關鍵時記錄丟失
TreeMultimap<Date, EventInstance> dateToEventMultimap = TreeMultimap.create();
// Build multimap.
Calendar cal1 = GregorianCalendar.getInstance();
Calendar cal2 = GregorianCalendar.getInstance();
cal1.clear(); // Clears the values of all the time fields.
cal2.clear();
for (EventInstance eventInstance : myEventList) {
cal1.setTime(eventInstance.getTimeDate());
cal2.set(cal1.get(Calendar.YEAR),
cal1.get(Calendar.MONTH),
cal1.get(Calendar.DAY_OF_MONTH));
dateToEventMultimap.put(cal2.getTime(), eventInstance);
}
日期是否包含時間部分?你有沒有考慮到這一點? – BalusC 2011-04-15 02:19:25
你不是在某處變更日期嗎?當Map/Multimap鍵更改時,一切都可能發生。避免可變對象作爲鍵幾乎總是一個好主意。 – maaartinus 2011-04-15 02:36:33
@BalusC無論時間部分如何,我都想獲取日期的所有事件。因此,我只使用月份的年,月和日來從列表中檢索具有如下時間格式的事件20110509T120500 – max 2011-04-15 02:43:06