本文介绍了如何使用收集器而不是手动放入java 8中的ConcurrentHashMap的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用收集器在ConcurrentHashMap中收集手动插入ConcurrentHashMap的实例

How can I Use Collectors to collect in a ConcurrentHashMap instread of putting manually into ConcurrentHashMap

ConcurrentHashMap<String, String> configurationMap = new ConcurrentHashMap<>();
List<Result> results = result.getResults();
results.stream().forEach(res -> {
     res.getSeries().stream().forEach(series -> {
         series.getValues().stream().forEach(vals ->{
                 configurationMap.put(vals.get(1).toString(),vals.get(2).toString());
         });
     });
});

//Note: vals is List<List<Object>> type

将不胜感激。

推荐答案

我们也可以这样做:

results.stream()
       .flatMap(res -> res.getSeries().stream())
       .flatMap(series -> series.getValues().stream())
       .collect(Collectors.toMap(
                              vals -> vals.get(1).toString(),
                              vals -> vals.get(2).toString(),
                              (vals1,vals2) -> vals2,
                              ConcurrentHashMap::new);

这篇关于如何使用收集器而不是手动放入java 8中的ConcurrentHashMap的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-20 09:16