相关疑难解决方法(0)

partitioningBy的目的是什么?

例如,如果我打算对某些元素进行分区,我可以执行以下操作:

Stream.of("I", "Love", "Stack Overflow")
      .collect(Collectors.partitioningBy(s -> s.length() > 3))
      .forEach((k, v) -> System.out.println(k + " => " + v));
Run Code Online (Sandbox Code Playgroud)

哪个输出:

false => [I]
true => [Love, Stack Overflow]
Run Code Online (Sandbox Code Playgroud)

但对我partioningBy来说只是一个子问题groupingBy.虽然前者Predicate在后者a中接受as参数Function,但我只看到一个分区作为正常的分组函数.

所以相同的代码完全相同:

 Stream.of("I", "Love", "Stack Overflow")
       .collect(Collectors.groupingBy(s -> s.length() > 3))
       .forEach((k, v) -> System.out.println(k + " => " + v));
Run Code Online (Sandbox Code Playgroud)

这也导致了Map<Boolean, List<String>>.

那么有什么理由我应该用partioningBy而不是groupingBy?谢谢

java java-8 collectors

30
推荐指数
2
解决办法
9381
查看次数

标签 统计

collectors ×1

java ×1

java-8 ×1