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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。