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