時間帯のインターリーブデータマージ(統合)処理
1646 ワード
言語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 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"
}
]