2016-07-26 5 views
0

次のマップ宣言があるMap<Integer, List<Integer>> JavaストリームAPIを使用して、すべてのキーと値のペアを1つのストリーム反復を使用してList<Integer>に収集したいと考えています。たとえば、次のマッピングを与えられた:値がコレクションであるリストにマップキー値を収集する方法

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

結果のリストは次のようになります。[1,2,3,4,7,8]

+1

マップエントリは未定義の順序を持​​っていることを重要ですか? – Silverclaw

+0

@AndyTurnerリストだけでなく、値を取得する必要があります。 –

+1

私はおそらくそれを行う必要があります: 'リストのres =新しいArrayList <>(); – eckes

答えて

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

ハッハッハ! 'Stream.concat()'が私の辞書に追加されました:) –

関連する問題