¿Cuál es el propósito de la partición?
Por ejemplo, si tengo la intención de particionar algunos elementos, podría hacer algo como:
Stream.of("I", "Love", "Stack Overflow")
.collect(Collectors.partitioningBy(s -> s.length() > 3))
.forEach((k, v) -> System.out.println(k + " => " + v));
que salidas:
false => [I]
true => [Love, Stack Overflow]
Pero para mipartioningBy
es solo un subcase degroupingBy
. Aunque el primero acepta unPredicate
como parámetro, mientras que este último unFunction
, Acabo de ver una partición como una función de agrupación normal.
Entonces, el mismo código hace exactamente lo mismo:
Stream.of("I", "Love", "Stack Overflow")
.collect(Collectors.groupingBy(s -> s.length() > 3))
.forEach((k, v) -> System.out.println(k + " => " + v));
lo que también resulta en unMap<Boolean, List<String>>
.
Entonces, ¿hay alguna razón por la que deba usarpartioningBy
en lugar degroupingBy
? Gracias