Java 8中的中间操作和终端操作之间的区别

在Java 8中引入了Stream,它仅用于处理数据组而不用于存储元素。它不修改实际的集合,它们仅根据流水线方法提供结果。

Stream api支持多种操作,并且操作分为两部分-

  • 中间操作—这些操作用于管道化其他方法并转换为其他流。它们不会产生结果,因为这些操作在终端操作执行之前不会调用。以下是示例-

  • sorted(Comparator<T>)

  • peek(Consumer<T>)

  • distinct()

  • 终端操作-这些操作用于产生结果。它们不能用于链接其他方法。以下是示例-

  • forEach

  • count

  • toArray

序号中间操作终端操作
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);
      });
   }
}