如何在 Java 中创建一个空流?

Posted

技术标签:

【中文标题】如何在 Java 中创建一个空流?【英文标题】:How do I create an empty Stream in Java? 【发布时间】:2017-07-04 07:24:41 【问题描述】:

在 C# 中我会使用 Enumerable.Empty(),但如何在 Java 中创建一个空的 Stream

【问题讨论】:

*** 比文档更适合 google。 你根本不需要谷歌。在开始开发 Java 软件时,只有一个地址可以收藏一次,docs.oracle.com/javase/8/docs/api 这是官方 API 文档,其中包含每个包、类和成员的结构,不需要搜索引擎找到它们。 当您已经知道它存在时,那么是的。但是 Java 有很多你可能希望存在的库方法,但结果却没有(或者不是你想的地方,或者你想的名字),如果你总是做API doc 您的第一个停靠点。 【参考方案1】:

就这么简单:Stream.empty()

【讨论】:

对于特定类型的流,使用Stream.<T>empty(),即Stream.<String>empty() @Mugen 不,你不应该。你为什么这么认为? 因为如果你不这样做,编译器会假定类型是Stream<? extends Object>,为什么不呢? @Mugen 你需要提供一个例子或提出一个问题,这不是类型推断应该如何工作的。 我提供了一个提示,如果您认为我错了,我会删除它,因为这是您的答案,我不打算开始新的讨论。【参考方案2】:
Stream<String> emptyStr = Stream.of();

emptyStr.count() 返回 0(零)。

另外:

对于像IntStream 这样的原始流,IntStream.of() 适用于 类似的方式(也是empty 方法)。 IntStream.of(new int[]) 也返回一个空流。 Arrays 类具有流创建方法,这些方法接受 基元数组或对象类型。这可以用来创建 空流;例如:System.out.println(Arrays.stream(new int[]).count()); 打印零。 从集合创建的任何流(如ListSet) 零个元素可以返回一个空流;例如:new ArrayList&lt;Integer&gt;().stream() 返回一个 Integer 类型的空流。

【讨论】:

这比接受的答案短;这让您想知道为什么创建Stream.empty() Stream.empty()相反,它在内部创建空数组,对其进行空检查等。您可以在实现中查找。

以上是关于如何在 Java 中创建一个空流?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中创建一个泛型数组?

如何在 Java 中创建字典? [关闭]

如何在java中创建一个加载栏

如何在 Java 中创建内存泄漏?

如何在 Java 中创建内存泄漏?

如何在 Java 中创建内存泄漏?