List 是 Collection 的子接口。它是一個有序的對象集合,其中可以存儲重複的值。由於 List 保留插入順序,因此它允許位置訪問和插入元素。列表接口由 ArrayList 、 LinkedList 、 Vector 和 Stack 類實現。
Stream 是支持各種方法的對象序列,這些方法可以通過管道傳輸以產生所需的結果。
下麵是 Java 中將 List 轉換為 Stream 的各種方法:
- 使用List.stream()方法:Java List 接口提供stream() 方法,該方法返回以此集合作為源的順序 Stream。
用法:
List.stream()
算法:
- 獲取流
- 使用List.stream()方法將Stream轉換為List。
- 返回列表
程序:
// 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]
- 使用謂詞過濾流: 這函數式接口謂詞在 java.util.Function 包中定義,因此可以用作 lambda 表達式或方法引用的賦值目標。它提高了代碼的可管理性,有助於分別unit-testing
算法:
- 獲取流
- 通過使用預定義的靜態方法或通過重寫 Predicate 接口創建新方法來定義 Predicate 條件。在此程序中,該接口被重寫以匹配以“G”開頭的字符串。
- 使用List.stream()方法將Stream轉換為List。
- 使用定義的謂詞條件過濾獲得的流
- 已獲得所需的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
相關用法
- Java List轉Set用法及代碼示例
- Java List轉HashSet用法及代碼示例
- Java List轉Map用法及代碼示例
- Java List sort()用法及代碼示例
- Java List spliterator()用法及代碼示例
- Java List toArray()用法及代碼示例
- Java ListIterator add()用法及代碼示例
- Java ListIterator hasNext()用法及代碼示例
- Java ListIterator hasPrevious()用法及代碼示例
- Java ListIterator next()用法及代碼示例
- Java ListIterator nextIndex()用法及代碼示例
- Java ListIterator previous()用法及代碼示例
- Java ListIterator previousIndex()用法及代碼示例
- Java ListIterator remove()用法及代碼示例
- Java ListIterator set()用法及代碼示例
- Java ListResourceBundle getContents()用法及代碼示例
- Java ListResourceBundle getKeys()用法及代碼示例
- Java ListResourceBundle handleGetObject()用法及代碼示例
- Java ListResourceBundle handleKeySet()用法及代碼示例
- Java List add()用法及代碼示例
- Java List addAll()用法及代碼示例
- Java List clear()用法及代碼示例
- Java List contains()用法及代碼示例
- Java List containsAll()用法及代碼示例
- Java List equals()用法及代碼示例
注:本文由純淨天空篩選整理自RishabhPrabhu大神的英文原創作品 Program to Convert List to Stream in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。