たとえば、いくつかの要素を分割する場合は、次のようにすることができます。
Stream.of("I", "Love", "Stack Overflow")
.collect(Collectors.partitioningBy(s -> s.length() > 3))
.forEach((k, v) -> System.out.println(k + " => " + v));
出力:
false => [I]
true => [Love, Stack Overflow]
しかし、私にとってpartioningBy
は のサブケースにすぎませんgroupingBy
。前者は aPredicate
をパラメーターとして受け入れ、後者は a を受け入れますがFunction
、パーティションは通常のグループ化関数としてのみ表示されます。
したがって、同じコードはまったく同じことを行います。
Stream.of("I", "Love", "Stack Overflow")
.collect(Collectors.groupingBy(s -> s.length() > 3))
.forEach((k, v) -> System.out.println(k + " => " + v));
これも結果になりMap<Boolean, List<String>>
ます。
partioningBy
代わりに使用する必要がある理由はありますgroupingBy
か?ありがとう