private static Map<Long, Long> dateMap = new TreeMap<>();
public static void dateHandle(long startTime, long endTime) {
if(startTime>endTime) return;
if (MapUtils.isEmpty(dateMap)) {
dateMap.put(startTime, endTime);
return;
}
//TreeMap能自动根据Key排序,只需要合并交集
//1、有交集则合并
//2、没有交集则添加
Iterator<Map.Entry<Long, Long>> iterator = dateMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Long, Long> entry = iterator.next();
Long start = entry.getKey();
Long end = entry.getValue();
if(startTime<start && endTime>=start && endTime<=end) {
iterator.remove();
dateMap.put(startTime, end);
} else if(startTime<start && endTime>end) {
iterator
java多个时间段 互相有交集求并集的问题
最新推荐文章于 2024-03-25 16:56:04 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)