所以我有一段代码,我在迭代一个数据列表.每一个都是一个ReportData,它包含一个具有Long caseId和一个Ruling的案例.每项裁决都有一项或多项付款.我希望将带有caseId的Map作为键和付款组作为值(即Map< Long,Set< Payments>>).
案例在行之间并不是唯一的,但案例是.
换句话说,我可以有几个具有相同大小写的行,但它们将具有唯一的规则.
以下代码为我提供了一个Map< Long,Set< Set< Payments>>>这几乎是我想要的,但我一直在努力找到在给定上下文中flatMap最终集合的正确方法.我一直在做着使用这个映射使逻辑正常工作的解决方法,但是我非常想修复算法以将这组付款正确地组合成一个集合,而不是创建一组集合.
虽然使用Java流进行flatMapping似乎是一个有点热门的话题,但我一直在搜索并找不到相同类型的迭代问题.
rowData.stream()
.collect(Collectors.groupingBy(
r -> r.case.getCaseId(),Collectors.mapping(
r -> r.getRuling(),Collectors.mapping(ruling->
ruling.getPayments(),Collectors.toSet()
)
)));