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?;

最佳答案

您可以使用Collectors.mapping:

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

07-27 17:53