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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。