突っ走り書き

見せるほどのものでは..

畳み込まずに Stream#flatMap を使う

Java8 の Stream 型に,flatMap ってメソッドがあることを知った.
reduce(畳み込み)の代わりに使える.

reduce

Set<Person> byReduce = teams.stream()
                            .map   ( team -> team.listMember() )
                            .reduce( Collections.emptySet(), (a, b) -> Sets.union(a, b) );

flatMap

Set<Person> byFlatMap = teams.stream()
				.flatMap( team -> team.listMember().stream() )
				.collect( Collectors.toSet() );

どっちを使っても2回メソッドを呼び出すので,あんまり違いは無いのかも.