當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Iterator轉Stream用法及代碼示例



給定一個迭代器,任務是將其轉換為 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'}

方法:

  1. 獲取迭代器。
  2. 使用 Spliterators.spliteratorUnknownSize() 方法將迭代器轉換為 Spliterator。
  3. 使用 StreamSupport.stream() 方法將形成的 Spliterator 轉換為 Sequential Stream。
  4. 返回流。

下麵是上述方法的實現:


// 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




相關用法


注:本文由純淨天空篩選整理自RishabhPrabhu大神的英文原創作品 Convert an Iterator to Stream in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。