如何将多个时间区间合并的Java方法步骤长尾化?
- 内容介绍
- 相关推荐
本文共计1027个文字,预计阅读时间需要5分钟。
问题原因 + 工作中遇到一个场景,需要合并时间区间。若要关闭合并区间,实现思路如下:
1.先对日期区间进行按时间顺序排序;
2.从第一个区间开始,比较当前区间的开始时间与下一个区间的开始时间;
3.如果当前区间的结束时间大于或等于下一个区间的开始时间,则合并这两个区间;
4.重复步骤2和3,直到所有区间都被处理完毕。
问题原因
工作中突然有个场景,需要合并时间区间。将若干闭合时间区间合并,实现思路如下:
1、 先对日期区间进行按时间顺序排序,这样后一个区间(记为next)的from一定是不小于前一个(记为prev)from的。
2、在进行循环比较的时候,对于next区间,假设next.from大于prev.to就说明这两个区间是分开的,要新增区间。否则说明next.from在[prev.from, prev.to]内,这时要看next.to是否是大于prev.to,如果大于就要合并区间。
本文共计1027个文字,预计阅读时间需要5分钟。
问题原因 + 工作中遇到一个场景,需要合并时间区间。若要关闭合并区间,实现思路如下:
1.先对日期区间进行按时间顺序排序;
2.从第一个区间开始,比较当前区间的开始时间与下一个区间的开始时间;
3.如果当前区间的结束时间大于或等于下一个区间的开始时间,则合并这两个区间;
4.重复步骤2和3,直到所有区间都被处理完毕。
问题原因
工作中突然有个场景,需要合并时间区间。将若干闭合时间区间合并,实现思路如下:
1、 先对日期区间进行按时间顺序排序,这样后一个区间(记为next)的from一定是不小于前一个(记为prev)from的。
2、在进行循环比较的时候,对于next区间,假设next.from大于prev.to就说明这两个区间是分开的,要新增区间。否则说明next.from在[prev.from, prev.to]内,这时要看next.to是否是大于prev.to,如果大于就要合并区间。

