Java中将列表转换为流的程序
List 是 Collection 的子接口。它是可以存储重复值的对象的有序集合。由于 List 保留了插入顺序,它允许元素的位置访问和插入。 List 接口由 ArrayList、LinkedList、Vector 和 Stack 类实现。
Stream 是一系列支持各种方法的对象,这些方法可以流水线化以产生所需的结果。
以下是在Java中将 List 转换为 Stream 的各种方法:
- 使用 List.stream() 方法: Java List 接口提供了 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
Stream convertListToStream(List list) { return list.stream(); } public static void main(String args[]) { // Create a stream of integers List list = Arrays.asList("GeeksForGeeks", "A computer portal", "for Geeks"); // Print the List System.out.println("List: " + list); // Convert List to stream Stream 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]
- 使用 Predicate 过滤流: Functional Interface Predicate在Java.util 中定义。函数包,因此可以用作 lambda 表达式或方法引用的赋值目标。它提高了代码的可管理性,有助于分别对它们进行单元测试
算法:
- 获取流
- 通过使用预定义的静态方法或通过覆盖 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
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 predicate = new Predicate () { @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