有没有办法可以简化这个并直接将我从groupingBy获得的地图转换为具有键和值作为属性的元素列表?并且没有2次转换流。
我在这里做的是我获取RiskItems然后将它们映射到DTO,之后我需要将它们按RiskItemDTO的属性 - RiskDTO分组,然后将所有这些分组为具有RiskDTO和coressponding RiskItemDTOs的元素列表。元件..
riskItemRepositoryCustom.findRiskItemsByRiskTypeName(riskTypeName)
.stream()
.map(mapper::mapToDTO)
.collect(groupingBy(RiskItemDTO::getRisk))
.entrySet()
.stream()
.map( entry -> new RiskWithRiskItemsDTO(entry.getKey(),entry.getValue()))
.collect(Collectors.toList());
答案 0 :(得分:8)
不,这是两个独立的流操作;分组的结果是第二个管道的输入。
我知道很多人都试图用尽可能少的分号来制作游戏,但目标应该是可读性和清晰度,而不是简洁性。总的来说,我认为最好是对正在发生的事情保持诚实,并将其写成两个独立的流操作:
proc.waitFor(10, TimeUnit.MINUTES)