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


Java List转Stream用法及代码示例


List 是 Collection 的子接口。它是一个有序的对象集合,其中可以存储重复的值。由于 List 保留插入顺序,因此它允许位置访问和插入元素。列表接口由 ArrayListLinkedListVectorStack 类实现。

Stream 是支持各种方法的对象序列,这些方法可以通过管道传输以产生所需的结果。

下面是 Java 中将 List 转换为 Stream 的各种方法:

  1. 使用List.stream()方法:Java List 接口提供stream() 方法,该方法返回以此集合作为源的顺序 Stream。

    用法:

    List.stream()

    算法

    1. 获取流
    2. 使用List.stream()方法将Stream转换为List。
    3. 返回列表

    程序:

    
    // Java Program to convert 
    // List to Stream in Java 8 
      
    import java.util.*; 
    import java.util.stream.*; 
    import java.util.function.Function; 
      
    class GFG { 
      
        // Generic function to convert a list to stream 
        private static <T> Stream<T> convertListToStream(List<T> list) 
        { 
            return list.stream(); 
        } 
      
        public static void main(String args[]) 
        { 
      
            // Create a stream of integers 
            List<String> list = Arrays.asList("GeeksForGeeks", 
                                              "A computer portal",  
                                              "for Geeks"); 
      
            // Print the List 
            System.out.println("List: " + list); 
      
            // Convert List to stream 
            Stream<String> stream = convertListToStream(list); 
      
            // Print the Stream 
            System.out.println("Stream from List: "
                        + Arrays.toString(stream.toArray())); 
        } 
    } 
    输出:
    List: [GeeksForGeeks, A computer portal, for Geeks]
    Stream from List: [GeeksForGeeks, A computer portal, for Geeks]
    
  2. 使用谓词过滤流: 这函数式接口谓词在 java.util.Function 包中定义,因此可以用作 lambda 表达式或方法引用的赋值目标。它提高了代码的可管理性,有助于分别unit-testing

    算法

    1. 获取流
    2. 通过使用预定义的静态方法或通过重写 Predicate 接口创建新方法来定义 Predicate 条件。在此程序中,该接口被重写以匹配以“G”开头的字符串。
    3. 使用List.stream()方法将Stream转换为List。
    4. 使用定义的谓词条件过滤获得的流
    5. 已获得所需的Stream。
      因此,使用forEach()方法打印流的过滤元素。
      也可以根据需要退回。

    程序:

    
    // Java Program to convert 
    // List to Stream in Java 8 
      
    import java.util.*; 
    import java.util.stream.*; 
    import java.util.function.*; 
      
    class GFG { 
      
        public static void main(String args[]) 
        { 
      
            // Create a stream of integers 
            List<String> list = Arrays.asList("GeeksForGeeks", 
                                              "A computer portal",  
                                              "for",  
                                              "Geeks"); 
      
            // Print the List 
            System.out.println("List: " + list); 
      
            // Create the predicate for item starting with G 
            Predicate<String> predicate = new Predicate<String>() { 
                @Override
                public boolean test(String s) 
                { 
                    // filter items that start with "G" 
                    return s.startsWith("G"); 
                } 
            }; 
      
            System.out.println("Stream from List with items"+ 
                                          " starting with G: "); 
      
            // Convert List to stream 
            list.stream() 
                .filter(predicate) 
                .forEach(System.out::println); 
        } 
    } 
    输出:
    List: [GeeksForGeeks, A computer portal, for, Geeks]
    Stream from List with items starting with G: 
    GeeksForGeeks
    Geeks
    


相关用法


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