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
?
答案 0 :(得分:7)
您可以使用Collectors.mapping
:
Map<Integer,List<ItemTypeB>> output =
data.stream()
.collect(Collectors.groupingBy(ItemTypeA::getId,
Collectors.mapping(a->convert(a),
Collectors.toList())));