有一个比直接使用spliteratorunknownsize
更好的答案,这既更容易,也能得到更好的结果。iterable
有一个spliterator()
方法,所以您应该只使用它来获得您的spliterator。在最坏的情况下,它是相同的代码(默认实现使用spliteratorunknownsize
),但在更常见的情况下,您的iterable
已经是一个集合,您将获得更好的spliterator,从而获得更好的流性能(甚至可能是良好的并行性)。代码也更少:
StreamSupport.stream(iterable.spliterator(), false)
.filter(...)
.moreStreamOps(...);
正如您所看到的,从iterable
中获取流(也请参见本问题)并不是很痛苦。
我有一个简单的循环,将元素从一个
问题内容: 我有一个返回的接口。 我想使用Java 8 Stream API处理该结果。 但是Iterable不能“流式传输”。 任何想法如何将Iterable用作流而不转换为List? 问题答案: 有一个比直接使用更好的答案,这既简单又得到更好的结果。 Iterable有一个方法,所以你应该使用该方法来获取分离器。在最坏的情况下,它是相同的代码(默认实现使用),但是在更常见的情况下,你已经是一个
本文向大家介绍在Java中将Iterator转换为Iterable,包括了在Java中将Iterator转换为Iterable的使用技巧和注意事项,需要的朋友参考一下 假设以下是具有整数值的迭代器- 现在,将Iterator转换为Iterable- 示例 以下是在Java中将Iterator转换为Iterable的程序- 输出结果
问题内容: 在我的应用程序中,我使用3rd party库(确切地说是MongoDB的Spring数据)。 该库的方法返回,而我的其他代码则期望。 有什么实用方法可以让我快速将一个转换为另一个吗?我想避免foreach在代码中创建这么简单的循环。 问题答案: 在JDK 8+中,不使用任何其他库: 编辑:上面的是Iterator。如果您正在处理Iterable,
基本上,我想读取Apache Ignite上的查询返回的所有值,该查询返回一个IgniteCursor。 我想以非阻塞的方式读取光标。 我可以写: 也许我错过了什么? 换句话说,有一种方法可以使用“异步非阻塞IO”从Ignite获取记录列表?
XML输入文件: XML输入文件转换为XML输出文件。将XML输入文件的firstName、middleName和lastName标签合并为XML Ouput文件的name标签,将XML输入文件的address1、address2、city、state和pincode标签合并为XML Ouput文件的address标签。 我几乎转换了代码,但我在这里与empId作斗争。我已经在XSLT文件中手动输