当前位置: 首页 > 知识库问答 >
问题:

partitioningBy必须生成一个包含真与假条目的地图吗?

昝涛
2023-03-14

partitioningBy收集器将谓词应用于流中的每个元素,并生成一个从布尔值到流中满足或不满足谓词的元素列表的映射。例如:

Stream.of(1,2,3,4).collect(partitioningBy(x -> x >= 3))
// {false=[1, 2], true=[3, 4]}

正如在PartitionBy的目的是什么中所讨论的,观察到的行为是PartitionBy总是返回一个包含true和false条目的映射。例如。:

Stream.empty().collect(partitioningBy(x -> false));
// {false=[], true=[]}

Stream.of(1,2,3).collect(partitioningBy(x -> false));
// {false=[1, 2, 3], true=[]}

Stream.of(1,2,3).collect(partitioningBy(x -> true));
// {false=[], true=[1, 2, 3]}

这种行为真的是在某个地方指定的吗?Javadoc只说:

返回一个收集器,该收集器根据谓词对输入元素进行分区,并将它们组织到映射中

一致性实施是否可以返回以下内容:

Stream.empty().collect(partitioningBy(x -> false));
// {}, or {false=[]}, or {true=[]}

Stream.of(1,2,3).collect(partitioningBy(x -> false));
// {false=[1, 2, 3]}

Stream.of(1,2,3).collect(partitioningBy(x -> true));
// {true=[1, 2, 3]}

相应的JSR335似乎只包含相同的文档,但没有额外讨论地图将包含哪些条目。


共有1个答案

公西岳
2023-03-14

在该方法的Java 9 Javadoc中,有一个澄清使其更加明确:

返回的Map始终包含假键和真键的映射。

 类似资料:
  • 问题内容: 包含的封闭实例 下面是代码。是我要使用的对象,它给了我上面的错误。 目前尚不清楚原因。 问题答案: 您正在尝试使用非静态内部类而没有其所属的实例。 非静态内部类必须属于其父类的实例 您可能应该更改为普通类或静态内部类。 或者,您可以编写以创建属于该实例的内部类的实例。

  • 我正在尝试创建包含值的访客条形图,例如: 我想显示一个每日总访客的条形图,该条形图应包含总访客和首次访客的信息。 所以数据条应该看起来像: 我查看了chartjs文档,但只找到了具有堆叠值的示例,并且该解决方案不适用于我所需的设计,是否有人可以参考文档/文章/教程或个人经验,或者我应该切换到d3js?谢谢

  • null null null 我只是不知道如何将两者结合起来,这样小数点后才是强制性的。 我如何解决这个问题?

  • 我们正试图在我们公司建立我们自己的表单-字段-组件。我们试图这样包装材料设计的组成部分: 字段: 文本框: 用法: 这大致会导致以下结果: 但是我在控制台中得到“mat-form-field必须包含一个MatFormFieldControl”。我想这与不直接包含matInput-field的mat-form-field有关。但它包含它,它只是在ng内容投影中。 这是一场闪电战:https://st

  • 如果密码只包含一个大写字符,我怎么写呢?