Java 把Iterable转换为Stream
给定一个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。
- 使用Iterable.spliterator()方法将Iterable转换为Spliterator。
- 使用StreamSupport.stream()方法将形成的Spliterator转换成顺序流。
- 返回流。
下面是上述方法的实现。
// 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