遇到一个问题,比较苦恼没有较好的计算方法去解决。具体是这样,有两个时间段,根据这两个时间段的交集和非交集部分,拆分出至多三个时间段。当时就用了最基础最笨的方法,两个时间段的起止时间相互比较区分多种情况进行拆分。不知道各位有没有遇到过相似的问题,或者有更好的解决方法。
3条回答
import_java_any 2016-07-15 07:14关注可以用两个list对应两个时间段,并对两个list排序,确保list从小到大排序。然后用list.retainAll(Collection<?>)方法获得两个list的交集listMiddle。
遍历两个list,把比listMiddle.get(0)小的放在listBefore,把比listMiddle.get(listMiddle.size()-1)大的放在listAfter。
listBefore, listMiddle, listAfter就是你要的三个时间段。基本思路是这样,可能还要加一些if判断,比如交集是否存在之类的。
评论 打赏 举报解决 1无用