streamでMapに詰める
Javaのstreamを使ってMapにつめかえる場合、Collectors.toMapを使う。
Map<Long, String> fooMap = fooList.stream() .collect(Collectors.toMap( Foo::getId, Foo::getName );
しかし上記の場合だと、キーが重複していた場合に IllegalStateException
が発生する。
同一キーを処理する
これを防ぐには、第三引数で同一キーに対する値を受け取れるので、処理を追加する。
Map<Long, String> fooMap = fooList.stream() .collect(Collectors.toMap( Foo::getId, Foo::getName, // この場合、先勝ちにしている (name1, name2) -> name1 );