たとえば、いくつかの要素を分割する場合は、次のようにすることができます。
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か?ありがとう