我有一个Task类,如下所示(使用Java 8 Time API)。
class Task {
LocalDateTime start;
LocalDateTime end;
Set actionItems;
}
我有两个包含此类Task实例的排序列表(首先按开始,然后按结束),让我们说ListtasksList1和ListtasksList2。我想合并重叠的任务(通过在需要时打破任务,并从重叠的其他任务中添加actionItems到一个新的任务对象中)。
例如,假设我有一个名为T1的任务,开始于2015年1月1日,结束于01/31/2015,其中包含操作项A和B。然后,用户创建了一个新的任务T2,其开始于01/15 / 2015年结束于2015年2月15日,并向其中添加了操作项C。当我合并时,我应该获得三个Task对象,如下所示。
任务X-从2015年1月1日到2015年1月15日,包含操作项A,B
任务Y-从01/15/2015到01/31/2015,包含项目A,B和C
任务Z-从01/31/2015到02/15/2015,包含项目C
为了可视化,如果我的两个列表中的任务对象在时间轴上看起来像以下内容:
> [-----] [-----] [----] [-----------------]
> [-----] [---------------] [------]
然后,结果任务列表将包含以下任务。
> [--][-][-