我試圖創建下面的類結構的Map<String, List<Moo>> fooMoos;
的Java 8流:地圖與子場
值:
class Foo {
String id;
Bar bar;
}
class Bar {
List<Moo> moos;
}
List<Foo> foos;
如果穆斯將直接成爲富的一個領域,我會做
Map<String, List<Moo>> fooMoos = foos.stream().collect(Collectors.toMap(Foo::getId, Foo::getMoos));
但你怎麼做的subFields?有沒有像Foo :: getBar :: getMoos?
我感覺我需要一個flatMap在這裏,但不知道該怎麼做。
'Collectors.toMap(Foo :: getId,foo - > foo.bar.moos)' – 4castle
我完全忘了,臨時你也可以在那裏使用lambda。謝謝。 – lilalinux
似乎是一種常見模式,忘記了lambda或試圖不惜代價地使用方法引用... – Holger