aqu*_*ind 4 java java-8 collectors
Map<Integer,List<ItemTypeA>> list = data.stream().collect(groupingBy(ItemTypeA::getId));
Run Code Online (Sandbox Code Playgroud)
我有一个将ItemTypeA转换为ItemTypeB的函数.
public ItemTypeB convert (ItemTypeA);
Run Code Online (Sandbox Code Playgroud)
如何在此后使用它,groupingBy以便最终结果如下所示.
Map<Integer,List<ItemTypeB>> map = data.stream().collect(groupingBy(ItemTypeA::getId),
Run Code Online (Sandbox Code Playgroud)
如何调用函数转换ItemTypeA为ItemTypeB?;
你可以使用Collectors.mapping:
Map<Integer,List<ItemTypeB>> output =
data.stream()
.collect(Collectors.groupingBy(ItemTypeA::getId,
Collectors.mapping(a->convert(a),
Collectors.toList())));
Run Code Online (Sandbox Code Playgroud)