java - 生成 boolean 流

标签 java java-8 java-stream

如何创建 Boolean.FALSE 的流,比方说,长度为 100?

我遇到的问题是:

  1. 最初我打算创建一个 Boolean.FALSE 的数组.但是new Boolean[100]返回 NULL 的数组.所以合理地我考虑使用流 API 作为一个方便的 Iterable几乎 ( 1 ) Iterable操纵工具;
  2. 没有 Boolean无参数构造函数( 2 ),因此我不能 使用 Stream.generate() , 因为它接受 Supplier<T> (3)。

我找到的是 Stream.iterate(Boolean.FALSE, bool -> Boolean.FALSE).limit(100);给出了我想要的,但恕我直言,这似乎不是一个非常优雅的解决方案。

还有一个选项,我发现 ( 4 ) 是 IntStream.range(0, 100).mapToObj(idx -> Boolean.FALSE); ,这在我看来更奇怪。

尽管这些选项不违反流 API 的管道概念,但是否有更简洁的方法来创建 Boolean.FALSE 的流?

最佳答案

即使 Boolean 没有无参数构造函数,您仍然可以通过 lambda 使用 Stream.generate:

Stream.generate(() -> Boolean.FALSE).limit(100)

这也有一个优点(与使用构造函数相比)那些将是相同 Boolean 实例,而不是 100 个不同但相等的实例。

关于java - 生成 boolean 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46767324/

相关文章:

java - 如何将 JSON 数组存储在 JSON 数组结果中并显示在 ListView 中?

java - 如何判断是否安装了 JRE 或 JDK

java-8 - Mockito when().thenReturn 没有给出预期结果

java - 现代 Java 实践中有关 java 流 dropWhile 示例的问题

Java Streams - 更改元素的字段

java - 使用 Java 8 计算列表中的出现次数

java - 使用java 8流在排序数字列表中查找最长的连续数字

java - Jsoup 抓取图像 url 结果数据为 :image/gif;base64,

java - 转换为 Message 数组

java - 操作后屏幕拒绝刷新