Например, если я намереваюсь разбить некоторые элементы, я мог бы сделать что-то вроде:
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
. Хотя первый принимает параметр Predicate
, а последний a Function
, я просто вижу раздел как нормальную функцию группировки.
Итак, тот же код делает то же самое:
Stream.of("I", "Love", "Stack Overflow")
.collect(Collectors.groupingBy(s -> s.length() > 3))
.forEach((k, v) -> System.out.println(k + " => " + v));
что также приводит к a Map<Boolean, List<String>>
.
Так есть ли какая-то причина, по которой я должен использовать partioningBy
вместо groupingBy
? Благодаря