如何在相同的stream()中处理groupingBy的结果List <T>值?

hengxin

简要地说: collect(groupingBy())返回一张地图Map<K, List<T>>如何将每个K替换为List<T>基于的新值(类UList<T>,并Map<K, U>相同的值 返回stream()


一个例子:假设我有一个Task,它由taskId组成Job

public class Task { int taskId; List<Job> jobList; }

对于每个Job方法,方法getAgentId确定可以处理它的“代理”:

// in class Job
int getAgentId() { // return the "agent" who is responsible for @param job }

将ATask划分为多个子Task,以便每个都可以由单独的“代理”处理:

// in class Partition; `Integer` for "agent" id
Map<Integer, Task> partition(Task task) { }

我的尝试:我用过groupingBy

Map<Integer, Task> partition(Task task) {
    int id = task.getTaskId();
    Map<Integer, List<Job>> agentJobsMap = 
        task.getJobList().stream()
                         .collect(groupingBy(Job::getAgentId),
                                  // question here);
}

问题:但是我想返回Map<Integer, Task>而不是Map<Integer, List<Job>>也就是说,我想包装所产生List<Job>groupingBy进入一个新Tasknew Task(id, the resulting List<Job>)怎么做?还是有没有的选择groupingBy

路易斯·瓦瑟曼

使用groupingBy接受的重载将另一个Collector用于结果:

task.getJobList().stream()
    .collect(
        groupingBy(
             Job::getAgentId,
             collectingAndThen(toList(), jobs -> new Task(id, jobs))));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何传递T类型值

来自分类Dev

如何添加与 list<T> 无关的新值

来自分类Dev

使用Linq更改List <T>中的值

来自分类Dev

如何在T-SQL中设置多个变量的值?

来自分类Dev

如何在T-SQL中连接对等节点的值

来自分类Dev

如何在T-SQL中检查空值

来自分类Dev

如何更新SelectListItem List <T>中的选定值

来自分类Dev

如何更新SelectListItem List <T>中的选定值

来自分类Dev

如何从服务中获取IOptions <T>值?

来自分类Dev

如何使用Linq确定List <T>中的所有对象是否具有相同的属性值

来自分类Dev

如何从值类型T的List <List <T >>中删除重复项?

来自分类Dev

如何从值类型T的List <List <T >>中删除重复项?

来自分类Dev

在List <T>内添加List <DateTime>值

来自分类Dev

在T-sql中递增字符值

来自分类Dev

在Delphi TStack <T>中循环并搜索值

来自分类Dev

在Delphi TStack <T>中循环并搜索值

来自分类Dev

T-SQL 如何选择一列值的计数,而另一列的值相同

来自分类Dev

如何在联接表结果中从具有相同名称的两个值中获取单个值?

来自分类Dev

如何在Spring中处理具有相同值但名称不同的按钮

来自分类Dev

通用List <T> .Contains()中的值与引用相等

来自分类Dev

在List <t>中查找,如果找到则返回布尔值

来自分类Dev

在List <T>中搜索值的最快,最优化的方法

来自分类Dev

在List <t>中查找,如果找到则返回布尔值

来自分类Dev

在List <T>中搜索值的最快,最优化的方法

来自分类Dev

如何在观察空值时将DataTable转换为List <T>

来自分类Dev

如何替换Java变量中可用的“ \ t”值

来自分类Dev

如何使用条件在 T-SQL 中显示 SUM() 值?

来自分类Dev

如何在名称相同且时间相同或至少相似的List <T>中查找元素?

来自分类Dev

在另一个 List<T> 内的 List<T> 中搜索值

Related 相关文章

  1. 1

    如何传递T类型值

  2. 2

    如何添加与 list<T> 无关的新值

  3. 3

    使用Linq更改List <T>中的值

  4. 4

    如何在T-SQL中设置多个变量的值?

  5. 5

    如何在T-SQL中连接对等节点的值

  6. 6

    如何在T-SQL中检查空值

  7. 7

    如何更新SelectListItem List <T>中的选定值

  8. 8

    如何更新SelectListItem List <T>中的选定值

  9. 9

    如何从服务中获取IOptions <T>值?

  10. 10

    如何使用Linq确定List <T>中的所有对象是否具有相同的属性值

  11. 11

    如何从值类型T的List <List <T >>中删除重复项?

  12. 12

    如何从值类型T的List <List <T >>中删除重复项?

  13. 13

    在List <T>内添加List <DateTime>值

  14. 14

    在T-sql中递增字符值

  15. 15

    在Delphi TStack <T>中循环并搜索值

  16. 16

    在Delphi TStack <T>中循环并搜索值

  17. 17

    T-SQL 如何选择一列值的计数,而另一列的值相同

  18. 18

    如何在联接表结果中从具有相同名称的两个值中获取单个值?

  19. 19

    如何在Spring中处理具有相同值但名称不同的按钮

  20. 20

    通用List <T> .Contains()中的值与引用相等

  21. 21

    在List <t>中查找,如果找到则返回布尔值

  22. 22

    在List <T>中搜索值的最快,最优化的方法

  23. 23

    在List <t>中查找,如果找到则返回布尔值

  24. 24

    在List <T>中搜索值的最快,最优化的方法

  25. 25

    如何在观察空值时将DataTable转换为List <T>

  26. 26

    如何替换Java变量中可用的“ \ t”值

  27. 27

    如何使用条件在 T-SQL 中显示 SUM() 值?

  28. 28

    如何在名称相同且时间相同或至少相似的List <T>中查找元素?

  29. 29

    在另一个 List<T> 内的 List<T> 中搜索值

热门标签

归档