微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在java 8中排序2次并按值排序

如何解决在java 8中排序2次并按值排序

我有人员列表和任务列表以及 timetoFinishTask

示例:人 => P1,P2,P3

任务 => T1,T2,T3,T4

一个人可以同时处理 2 个任务。

案例 1:

List<Person> persons = new ArrayList<>();
List<Task> tasks = new ArrayList<>();
    P1 -> T1 -> 1,P1 -> T2 -> 7
    P2 -> T3 -> 6
    P3 -> T4 -> 2

 Here 1,7,6,2 represent the time he takes to finish task in mins

 Since P1 has 2 tasks,his time to take up the next task would be max(1,7) and so the sorting 
 order must be output : List<Task> = [T4,T1,T2];

如果没有人有超过 1 个任务,则排序顺序将仅基于 timetoFinishTask

情况 2:

    P1 -> T1 -> 1,P2 -> T2 -> 7
    P3 -> T3 -> 6
    P4 -> T4 -> 2

    In this case (as no person has more than 1 task simultaneously) it will be sorted like  
    T1,T4,T2

我尝试使用 List>,我已经将人员任务时间放在一起

  class PersonTaskWrapper{
       String personName;
       Task task;    
  }

对于情况 2,它工作正常。但是我发现很难对一个人可以有 1 个以上任务的情况 1 进行排序,因此我必须先对一个人的常见任务排序(两次)一次,然后再将它与其他任务排序。 有什么简单的方法可以做到这一点?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。