在 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
提交
取消