给定一个 Iterable,任务是将其转换为 Java 中的 Stream。
例子:
Input: Iterable = [1, 2, 3, 4, 5] Output: {1, 2, 3, 4, 5} Input: Iterable = ['G', 'e', 'e', 'k', 's'] Output: {'G', 'e', 'e', 'k', 's'}
方法:
- 获取可迭代对象。
- 使用 Iterable.spliterator() 方法将 Iterable 转换为 Spliterator。
- 使用 StreamSupport.stream() 方法将形成的 Spliterator 转换为 Sequential Stream。
- 返回流。
下面是上述方法的实现:
// Java program to get a Stream
// from a given Iterable
import java.util.*;
import java.util.stream.*;
class GFG {
// Function to get the Stream
public static <T> Stream<T>
getStreamFromIterable(Iterable<T> iterable)
{
// Convert the Iterable to Spliterator
Spliterator<T>
spliterator = iterable.spliterator();
// Get a Sequential Stream from spliterator
return StreamSupport.stream(spliterator, false);
}
// Driver code
public static void main(String[] args)
{
// Get the Iterator
Iterable<Integer>
iterable = Arrays.asList(1, 2, 3, 4, 5);
// Get the Stream from the Iterable
Stream<Integer>
stream = getStreamFromIterable(iterable);
// Print the elements of stream
stream.forEach(s -> System.out.println(s));
}
}
输出:
1 2 3 4 5
相关用法
- Java Iterable转Collection用法及代码示例
- Java Iterator转Iterable用法及代码示例
- Java Iterable forEach()用法及代码示例
- Java Stream.of()和Arrays.stream()的区别用法及代码示例
- Java Stream转Set用法及代码示例
- Java Set转Stream用法及代码示例
- Java Iterator转Stream用法及代码示例
- Java Stream转Map用法及代码示例
- Java stream.limit()用法及代码示例
- Java Stream skip()用法及代码示例
- Java Stream.reduce()用法及代码示例
注:本文由纯净天空筛选整理自RishabhPrabhu大神的英文原创作品 Convert an Iterable to Stream in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。