Java Streams を使用して取得したいMap<A, Map<B, C>>
と考えています。Map<B, List<C>>
私は次のようにそれをしようとします:
public <A, B, C> Map<B, List<C>> groupsByInnerKey(Map<A, Map<B, C>> input) {
return input.values()
.stream()
.flatMap(it -> it.entrySet().stream())
.collect(Collectors.groupingBy(Map.Entry::getKey));
}
私が期待するもの:
flatMap
Stream
を与えるMap.Entry<B, C>
collect(Collectors.groupingBy(...))
Map.Entry<B, C>
に適用されてを返す関数を受け取りB
、 の値を収集しC
ますList<C>
。
しかし、文字通りコンパイルされません。
非静的メソッドは静的コンテキストから参照できません
Map.Entry::getKey
最後の行で。
誰かが何が間違っているか、または私が望むものを達成するための正しい方法を説明できますか?