美文网首页
时间段交集数据合并(并集)处理

时间段交集数据合并(并集)处理

作者: 伱个大西瓜 | 来源:发表于2019-05-10 13:37 被阅读0次

    语言 Java
    实现内容是一列时间段合并有交集情况下的时间段(前提是数据顺序按开始时间从小到大排序)

    • 数据结构
    #  start和end 是Date日期类型
    [
        {
            "start": "2019-05-10 10:00:00",
            "end": "2019-05-10 11:30:00"
        },
        {
            "start": "2019-05-10 10:30:00",
            "end": "2019-05-10 11:00:00"
        },
        {
            "start": "2019-05-10 11:00:00",
            "end": "2019-05-10 12:00:00"
        },
        {
            "start": "2019-05-10 13:00:00",
            "end": "2019-05-10 14:00:00"
        },
        {
            "start": "2019-05-10 13:30:00",
            "end": "2019-05-10 15:00:00"
        }
    ]
    
    • 方法
    for (int i = 0; i < list.size(); i++) {    //list 格式 : List<Data> Data就是上面json格式
        Data dataI=list.get(i);
        for (int j = i+1; j < list.size(); j++) {
            Data dataJ=list.get(j);
            if (dataI.getEnd().compareTo(dataJ.getStart())>=0&&dataI.getEnd().compareTo(dataJ.getEnd())<=0){
                dataI.setEnd(dataJ.getEnd());
                list.remove(j);
                j--;
            }else if(dataI.getEnd().compareTo(dataJ.getEnd())>=0){
                list.remove(j);
                j--;
            }else{
                break;
            }
            i=j;
        }
    }
    
    • 效果
    [
        {
            "start": "2019-05-10 10:00:00",
            "end": "2019-05-10 12:00:00"
        },
        {
            "start": "2019-05-10 13:00:00",
            "end": "2019-05-10 15:00:00"
        }
    ]
    

    相关文章

      网友评论

          本文标题:时间段交集数据合并(并集)处理

          本文链接:https://www.haomeiwen.com/subject/vaxaoqtx.html