gyo*_*ham 2 java algorithm jodatime
我有一堆Joda时间Interval对象存储在List中.所有这些间隔都有有效的开始和结束时刻.这些间隔可以有任何重叠,紧密甚至间隙.
我想尽可能地平坦化(优化)这些间隔.我的意思是,我必须生成其他Interval对象,这些对象代表从 - 到信息,但没有冗余.
例如:
I1:2012-01-12T05:00:00.000/2013-03-18T14:00:00.000
I2:2012-04-12T04:00:00.000/2013-02-10T06:00:00.000
I3:2015-12-12T04:00:00.000/2016-12-12T06:00:00.000
应该产生:
I1_o:2012-01-12T05:00:00.000/2013-03-18T14:00:00.000
I2_o:2015-12-12T04:00:00.000/2016-12-12T06:00:00.000
(I2绝对在I1之内,因此可以忽略,结果两者有差距).
我知道Interval类中的三个方法可以帮助我,但我想我需要一个更通用的算法,可以搜索某些间隔之间的重叠,比如普通数字等.提前谢谢!
按开始时间对间隔进行排序,并循环显示间隔.如果间隔i的开始时间小于或等于间隔i-1的结束时间,则它们可以合并为一个间隔,其结束时间是两个原始间隔的最大结束时间.(将生成的时间间隔放入新的列表中,以便您可以安全地遍历已排序的原始时间间隔列表,而无需对其进行修改.)
| 归档时间: |
|
| 查看次数: |
2503 次 |
| 最近记录: |