0
鉴于以下地图声明Map<Integer, List<Integer>>
我想使用Java 8 streams API通过单个流迭代将所有键值对收集到List<Integer>
中。例如,假设下面的映射:如何将地图键值收集到值为集合的列表中
1->[2,3]
4->[7,8]
结果列表将是:[1,2,3,4,7,8]
鉴于以下地图声明Map<Integer, List<Integer>>
我想使用Java 8 streams API通过单个流迭代将所有键值对收集到List<Integer>
中。例如,假设下面的映射:如何将地图键值收集到值为集合的列表中
1->[2,3]
4->[7,8]
结果列表将是:[1,2,3,4,7,8]
List<Integer> list = map.entrySet()
.stream()
.flatMap(e -> Stream.concat(Stream.of(e.getKey()), e.getValue().stream()))
.collect(Collectors.toList());
呵呵! 'Stream.concat()'刚刚添加到我的词汇:) –
不要紧,该地图项具有未定义的订单? – Silverclaw
@AndyTurner我还需要将关键字放入列表中,而不仅仅是值。 –
我可能会这样做,势在必行:'列表 res = new ArrayList <>(); map.forEach((key,value) - > res.add(key); res.addAll(value);});' –
eckes