Java 8 中中间操作和终端操作的区别
javaserver side programmingprogramming
Java 8 引入了 Stream,它仅用于处理数据组,而不是用于存储元素。它不会修改实际的集合,它们仅根据流水线方法提供结果。
Stream api 支持多种操作,操作分为两部分 −
- 中间操作 - 这些操作用于流水线其他方法并转换为其他流。它们不会产生结果,因为这些操作直到终端操作执行后才会调用。以下是示例 −
- sorted(Comparator<T>)
- peek(Consumer<T>)
- distinct()
- 终端操作 - 这些操作用于产生结果。它们不能用于链接其他方法。以下是示例 −
- forEach
- count
- toArray
Sr.不。 | 关键 | 中间操作 | 终端操作 |
---|---|---|---|
1 | 基本 | 这些操作用于流式传输其他方法并转换为其他流 | Java 中的终端操作是作为最后一步应用于流的方法。 |
2 | 返回类型 | 它们只返回另一个流。 | 它们返回最终结果。 |
3 | 方法 | sorted(Comparator<T>) peek(Consumer<T>) distinct() | forEach count toArray |
4. | 用例 | 这些操作应用于将流转换为另一个流 | 它们可用于生成结果。 |
中间和终端操作示例
public class Main { public static void main(String args[]) throws InterruptedException, ExecutionException { List<String> laptopList = new ArrayList(); laptopList.add("DELL"); laptopList.add("ACER"); laptopList.add("HCL"); // 中间操作 laptopList.sort((p1, p2) -> p1.compareTo(p2)); // 终端操作 laptopList.forEach(a -> { System.out.println(a); }); } }