私は時間のセットをマージしようとしています。私はこのようなものを持っていることを意味します。私のコードは単一のデータに適しています。どのようにしてn回行うことができますか?時刻のマージセット -
BEFORE MERGE:
[
{
"start": "11:00",
"end" : "15:00"
},
{
"start": "10:00",
"end" : "12:00"
}
]
AFTER MERGE:
[
{
"start": "10:00",
"end" : "15:00"
}
]
マイコード:私はScheduleEntryのリストについては、それを実装することができますかわからない
public List<ScheduleEntry> merge(ScheduleEntry a, ScheduleEntry b) {
List<ScheduleEntry> entries = new ArrayList<>();
int durationInMinuteBetweenStarts = parseTimeString(a.getStartTime()) - parseTimeString(b.getStartTime());
int durationInMinuteBetweenEnds = parseTimeString(a.getEndTime()) - parseTimeString(b.getEndTime());
int durationInMinuteBetweenStartAAndBEnd = parseTimeString(a.getStartTime()) - parseTimeString(b.getEndTime());
int durationInMinuteBetweenStartBAndAEnd = parseTimeString(b.getStartTime()) - parseTimeString(a.getEndTime());
if(durationInMinuteBetweenStartAAndBEnd > 0 || durationInMinuteBetweenStartBAndAEnd < 0) {
entries.add(a);
entries.add(b);
}
else if(durationInMinuteBetweenStarts < 0 && durationInMinuteBetweenEnds >= 0) {
String newStart = a.getStartTime();
String newEnd = a.getEndTime();
entries.add(new ScheduleEntry(newStart, newEnd));
}
else if(durationInMinuteBetweenStarts >= 0 && durationInMinuteBetweenEnds < 0) {
String newStart = b.getStartTime();
String newEnd = b.getEndTime();
entries.add(new ScheduleEntry(newStart, newEnd));
}
else if(durationInMinuteBetweenStarts <= 0 && durationInMinuteBetweenEnds <= 0) {
String newStart = a.getStartTime();
String newEnd = b.getEndTime();
entries.add(new ScheduleEntry(newStart, newEnd));
}
else if(durationInMinuteBetweenStarts > 0 && durationInMinuteBetweenEnds >= 0) {
String newStart = b.getStartTime();
String newEnd = a.getEndTime();
entries.add(new ScheduleEntry(newStart, newEnd));
}
return entries;
}
private int parseTimeString(String s) {
String[] t = s.split(":");
return Integer.parseInt(t[0]) * 60 + Integer.parseInt(t[1]);
}
:/私は答えを見つけるためにしようと、それを並べ替えるとすべきか?上記のコードの基本的なアイデアは、時間の間の期間をチェックし、答えを指定することです。
あなたのコードを含めてください。 – clemens
ようこそスタックオーバーフロー! [ツアー](ツアー)を見て回り、[ヘルプセンター](/ help)、特に[どのように良い質問をしますか?](/ help/how-to-質問)と[ここではどのような話題について聞くことができますか?](/ help/on-topic)その2番目のリンクから:「宿題の助けを求める質問には、問題を解決するために今まで行ってきた作業の概要と、それを解決している困難の説明が含まれていなければなりません。これは、外部サービスへのリンクであってはなりません。 –
私のコードは?どういう意味ですか?私のコードは、pasterbinファイルにあります。 –