給定一個迭代器,任務是將其轉換為 Java 中的 Stream。
例子:
Input: Iterator = {1, 2, 3, 4, 5} Output: {1, 2, 3, 4, 5} Input: Iterator = {'G', 'e', 'e', 'k', 's'} Output: {'G', 'e', 'e', 'k', 's'}
方法:
- 獲取迭代器。
- 使用 Spliterators.spliteratorUnknownSize() 方法將迭代器轉換為 Spliterator。
- 使用 StreamSupport.stream() 方法將形成的 Spliterator 轉換為 Sequential Stream。
- 返回流。
下麵是上述方法的實現:
// Java program to get a Stream
// from a given Iterator
import java.util.*;
import java.util.stream.*;
class GFG {
// Function to get the Stream
public static <T> Stream<T>
getStreamFromIterator(Iterator<T> iterator)
{
// Convert the iterator to Spliterator
Spliterator<T>
spliterator = Spliterators
.spliteratorUnknownSize(iterator, 0);
// Get a Sequential Stream from spliterator
return StreamSupport.stream(spliterator, false);
}
// Driver code
public static void main(String[] args)
{
// Get the Iterator
Iterator<Integer>
iterator = Arrays.asList(1, 2, 3, 4, 5)
.iterator();
// Get the Stream from the Iterator
Stream<Integer>
stream = getStreamFromIterator(iterator);
// Print the elements of stream
stream.forEach(s -> System.out.println(s));
}
}
輸出:
1 2 3 4 5
相關用法
- Java Stream.of()和Arrays.stream()的區別用法及代碼示例
- Java Iterator轉List用法及代碼示例
- Java Iterator轉Spliterator用法及代碼示例
- Java Iterator轉Iterable用法及代碼示例
- Java Stream轉Set用法及代碼示例
- Java Set轉Stream用法及代碼示例
- Java List轉Stream用法及代碼示例
- Java Stream轉Array用法及代碼示例
- Java Boxed Array轉Stream用法及代碼示例
- Java Primitive Array轉Stream用法及代碼示例
- Java Map轉Stream用法及代碼示例
- Java Iterable轉Stream用法及代碼示例
- Java Stream轉Map用法及代碼示例
- Java TreeSet iterator()用法及代碼示例
- Java LinkedBlockingDeque iterator()用法及代碼示例
- Java IntStream iterator()用法及代碼示例
- Java AbstractSequentialList iterator()用法及代碼示例
注:本文由純淨天空篩選整理自RishabhPrabhu大神的英文原創作品 Convert an Iterator to Stream in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。