分组后,将对象列表从类型A转换为类型B.

时间:2018-03-27 11:30:30

标签: java java-8 collectors

Map<Integer,List<ItemTypeA>> list = data.stream().collect(groupingBy(ItemTypeA::getId)); 

我有一个将ItemTypeA转换为ItemTypeB的函数。

public ItemTypeB convert (ItemTypeA); 

如何在groupingBy之后使用它,以便最终结果如下所示。

Map<Integer,List<ItemTypeB>> map = data.stream().collect(groupingBy(ItemTypeA::getId), 

如何调用函数将ItemTypeA转换为ItemTypeB

1 个答案:

答案 0 :(得分:7)

您可以使用Collectors.mapping

Map<Integer,List<ItemTypeB>> output = 
    data.stream()
        .collect(Collectors.groupingBy(ItemTypeA::getId,
                 Collectors.mapping(a->convert(a),
                                    Collectors.toList())));