如何检查hashmap中的键(Calendar)是否连续?

时间:2015-09-25 17:20:42

标签: java collections

我有一个键盘类型为Calendar的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

我想我将使用TreeMap对地图进行排序,但我不确定如何对每个值的连续键进行分组。
你会怎么做?

1 个答案:

答案 0 :(得分: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