如何通过Map <k,v>转换为Java 8地图分组

时间:2018-10-19 16:05:41

标签: java java-8 java-stream

我已经开始使用Java 8流。

以下内容返回Map<Long, TradeFileInstance>

的映射
Map<Long, List<TradeFileInstance>> configInstanceMap = new HashMap<Long, List<TradeFileInstance>>();
List<TradeFileInstance> tradeFileInstances = tradeFileInstanceRepository.findAll();

configInstanceMap = tradeFileInstances.stream().collect(Collectors.groupingBy(tradeFileInstance ->
                                tradeFileInstance.getTradeFileConfig().getId()));
                        return configInstanceMap;

但是我需要返回Map<TradeFileConfig, List<TradeFileInstance>>

的地图

在以上代码中,我们可以通过tradeFileInstance.getTradeFileConfig()获取TradeFileCongig对象

1 个答案:

答案 0 :(得分:1)

 tradeFileInstances.stream()
                   .collect(Collectors.groupingBy(TradeFileInstance::getTradeFileConfig));

假设TradeFileConfig覆盖equals/hashCode