如何使用收集器而不是手动放入java 8中的ConcurrentHashMap

Sun*_*aik 6 java java-8

如何使用收集器在ConcurrentHashMap中收集手动插入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
Run Code Online (Sandbox Code Playgroud)

帮助将不胜感激.

Kay*_*ayV 2

我们也可以这样做:

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);
Run Code Online (Sandbox Code Playgroud)