在 java list中,存放了一段范围的日期对象,例如: [
'2018-03-01 00:00:00',
'2018-03-02 00:00:00',
'2018-03-03 00:00:00',
'2018-03-04 00:00:00',
'2018-03-10 00:00:00',
'2018-03-11 00:00:00',
'2018-03-12 00:00:00',
'2018-03-14 00:00:00',
'2018-03-15 00:00:00',
'2018-03-16 00:00:00'
]有一个周期类: class Period{
private Date startDate;
private Date endDate;
}现在想要实现的效果是:获得 list 中每一段连续的日期,并将每一段连续的日期第一个日期作为 start date,最后一个日期作为 end date。比如: [
'2018-03-01 00:00:00',
'2018-03-02 00:00:00',
'2018-03-03 00:00:00',
'2018-03-04 00:00:00'
]
上面这段日期对应的 Period 的实体的start date 为 2018-03-01 00:00:00, end date 为 2018-03-04 00:00:00不知道用什么算法能解决此问题。谢谢各位大神帮忙!
2 回答

红糖糍粑
TA贡献1815条经验 获得超6个赞
转成map备用。然后排序(有可以排序的方法),从小到大排序,排序后取第一条,从第一条的基础上加上一天的时间,然后去map里看看有没有,如果有就用放到另一个集合中,并且在加了一天时间的数据上继续加一天然后继续找,如果找不到了,就看看上一条是第几条,然后再这个条数+1找到下一条,然后再加一天。。。。循环下去

慕田峪4524236
TA贡献1875条经验 获得超5个赞
这没那么麻烦把,数据很多都是从数据库里拉出来的,先排序,确定时间顺序,就可以了,之后用Timestamp这个java.sql类操作方法,好用点,也可以其他的
添加回答
举报
0/150
提交
取消