当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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'}

方法:

  1. 获取可迭代对象。
  2. 使用 Iterable.spliterator() 方法将 Iterable 转换为 Spliterator。
  3. 使用 StreamSupport.stream() 方法将形成的 Spliterator 转换为 Sequential Stream。
  4. 返回流。

下面是上述方法的实现:


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

相关用法


注:本文由纯净天空筛选整理自RishabhPrabhu大神的英文原创作品 Convert an Iterable to Stream in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。