如何将map键值收集到value为集合的列表中

时间:2016-07-26 19:29:09

标签: java lambda

给定以下映射声明Map<Integer, List<Integer>>我想使用Java 8流API使用单个流迭代将所有键值对收集到List<Integer>中。例如,给定以下映射:

1->[2,3] 
4->[7,8]

结果列表为:[1,2,3,4,7,8]

1 个答案:

答案 0 :(得分:4)

List<Integer> list = map.entrySet()
        .stream()
        .flatMap(e -> Stream.concat(Stream.of(e.getKey()), e.getValue().stream()))
        .collect(Collectors.toList());