2015-09-25 114 views
0

我有一個HashMap其主要類型爲日曆,如:如何檢查散列表中的鍵(日曆)是否連續?

HashMap <Calendar, Student> map = new HashMap <Calendar, Student>(); 

一旦我排序日期地圖,我要檢查,如果在地圖中的每個日曆(鍵)是連續的每名學生的名字;例如,假設地圖中的數據是這樣的:

('10-01-2015', student1), ('10-02-2015', student1), ('10-03-2015', student1), ('10-10-2015', student1), ('10-11-2015', student2), ('10-13-2015', student2) 

等等。

那麼,什麼是我想要的結果類似下面的東西:

student1: 10-01-2015 - 10-03-2015 
student1: 10-10-2015 
student2: 10-11-2015 
student2: 10-13-2015 

我想我會用樹狀圖中的地圖進行排序,但我不知道如何組每連續鍵值。
你會怎麼辦?

+0

我想的NavigableMap將有助於 – Shriram

+0

你的設計看起來有點怪我,這將只允許一個日期/學生組合..是你想要的嗎? –

+0

'Calendar'-sorting與'equals()'不一致,所以在像TreeMap這樣的有序映射中使用它是非常危險的。 –

回答

0

你可以做一個循環,它裏面做這樣的事情..

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
Calendar c = Calendar.getInstance(); 
c.setTime(sdf.parse(YOURKEY/DATE)); 
Calendar pd = c;//previous Date 
c.add(Calendar.DATE, 1); // number of days to add 

現在是否c.getTime = dt.getTime

相關問題