如何创建 Boolean.FALSE
的流,比方说,长度为 100?
我遇到的问题是:
- 最初我打算创建一个
Boolean.FALSE
的数组.但是new Boolean[100]
返回NULL
的数组.所以合理地我考虑使用流 API 作为一个方便的Iterable
几乎 ( 1 )Iterable
操纵工具; - 没有
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/