2015-09-25 117 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

相关问题