当前位置: 首页 > 编程笔记 >

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

范瀚昂
2023-03-14
本文向大家介绍Java 8中的中间操作和终端操作之间的区别,包括了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);
      });
   }
}
 类似资料:
  • 问题内容: 有人可以告诉我中间操作和终端操作有什么区别吗? 操作组合到管道中以处理流。所有操作都是中间操作或终端..means?。 问题答案: Stream支持几种操作,这些操作分为和操作。 此操作之间的区别在于,中间操作是惰性的,而终端操作不是。当您在流上调用中间操作时,该操作不会立即执行。仅在对该流调用终端操作时才执行该命令。在某种程度上,一旦调用了终端操作,便会存储并调用一次中间操作。您可以

  • 本文向大家介绍操作系统中中断和轮询之间的区别,包括了操作系统中中断和轮询之间的区别的使用技巧和注意事项,需要的朋友参考一下 在这篇文章中,我们将了解操作系统中中断和轮询之间的区别- 打断 这是一个过程,通过该过程可以通知CPU需要注意的事项。 它被认为是一种硬件机制。 中断处理程序为设备服务/工作。 中断请求行指示设备需要维修。 仅在设备需要维修时才使用CPU。 反过来,这节省了CPU周期。 中断

  • 本文向大家介绍操作系统和内核之间的区别,包括了操作系统和内核之间的区别的使用技巧和注意事项,需要的朋友参考一下 操作系统 操作系统管理计算机,并充当用户和计算机之间的接口。操作系统是启动计算机时启动的第一个程序。 核心 内核是操作系统的核心组件,负责将用户命令转换为机器级别的语言命令。 以下是操作系统和内核之间的重要区别。 序号 键 操作系统 核心 1 类型 操作系统是系统软件。 内核是操作系统的

  • 本文向大家介绍操作系统中分页和交换之间的区别,包括了操作系统中分页和交换之间的区别的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解操作系统中的分页和交换之间的区别- 交换 它是将整个过程复制到另一个位置的过程。 当整个过程都已转移到磁盘上时,将发生此过程。 在此,数据从主存储器临时交换到辅助存储器。 无需使用任何内存管理方法即可完成此操作。 也可以通过不活动的进程来完成。 它有助于给

  • 问题内容: 据我了解,当JSF操作返回(空字符串)时,用户停留在当前页面上,但视图已刷新。但是,当操作返回时,用户仍停留在当前页面上,但旧视图已被重用。我的问题是: 上面的陈述正确(准确)吗? 如果是,那么这意味着什么?具体来说,使用一种对另一种对页面上的数据(例如,JSF UI组件中的值或存储在DataTable中的请求范围Bean中的数据)有什么影响? 在什么情况下应该使用一种而不是另一种?