分区的目的是什么
2022-08-31 20:12:43
例如,如果我打算对某些元素进行分区,我可以做如下操作:
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]
但对我来说只是 的一个子案例。虽然前者接受 as 参数,而后者接受 as 参数,但我只是将分区视为正常的分组函数。partioningBy
groupingBy
Predicate
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