当前位置: 首页 > 网络应用技术

Java 8新功能|流流详细说明

时间:2023-03-05 21:24:11 网络应用技术

  通过:

  面向对象的想法需要注意用于完成的对象,而儿童功能编程思想与我们的数学功能相似。它的重点是完成数据。

  优势:

  Lambda是JDK8中的语法糖。他可以简化某些匿名内部类的写作,他是功能编程思想的重要体现。

  核心原则:可以推下并省略

  不要注意类别名称,方法名称。只注意该方法!

  示例1:如何在多线程中创建线程

  lambda写作:

  示例2:

  现有方法定义如下。其中,它是一个接口。首先,尝试调用匿名内部类中的方法,然后使用写作方法。

  lambda写作:

  1.使用前提:

  lambda表达语法非常简洁,但表达式不随意地使用。使用时,有几种条件可以特别注意::

  2.与匿名内部类比较

  使用lambda时,如果只有一个方法调用(包括构造函数),我们可以使用发送参考来进一步简化代码

  推荐用法:

  如果lambda方法中只有一行代码,则是方法调用。

  Java8方法有四种形式:

  从本质上讲,这是一个具有可选价值的包装类,这意味着可选类可以包含对象或空。我们需要知道Java实现功能编程并在Paradigm.ut中实现它是强大的一步。含义显然不止于此。我们知道任何访问对象或属性调用都可能导致它。在这里,让我举一个简单的例子来解释:

  当我们编写代码时,我们通常会有异常的空中指针。为了避免空指针,我们需要做出各种非空气判断:

  尤其是对象中的属性仍然是一个对象。此判断将更多。太多的判断将使我们的代码看起来肿。

  可选的实际上是一个容器:它可以保存T型的值,或者仅保存NULL。选项提供了许多有用的方法,因此我们无需明确执行差距检测。

  可选的构造函数

  可选的三个结构:显然

  可选的(OBJ):它要求它不能有价值,否则将直接报告。nullial(obj):它在一个实例中构造一个实例,宽容。如果您不拒绝,您可以得到它当您输入它。如果非null调用可选的(obj)。可选。Empty():返回一个空的可选对象。

  可选的常用功能

  :如果有一个值返回到true,否则返回false。将抛出nosuchelementException。因此,它不经常使用。:如果您有一个值,则将其返回,否则它将返回到指定的值。:orelelseget与ORELSE方法相似,差异是获得的默认值。ORELSE。方法使用传输字符串作为默认值。ORELSEGET方法可以接受供应商接口的实现以生成无声识别:如果有一个值,则将其返回,否则供应商接口创建的异常性。可选包含此值,否则将返回空的可选元件。:如果您有一个值,则可以执行映射函数以获取返回值。如果返回值不为null,则包含映射返回值的可选元素为创建为地图方法返回值,否则将返回空的可选元件。:如果您有值,请执行映射函数回到可选的类型返回值,否则将返回空的可选函数。

  当使用何时使用时,应如何使用某些东西。这是重要的一点?因此,不应将其用作类字段。如果您需要一个序列化对象,可选值,杰克逊库支持可选的作为一个换句话说,杰克逊将空对象视为null,而有价值的对象则将其值视为相应域的值。此函数在项目中。获取此类型的实例后,如果值得,您可以获得此值,否则您可以执行一些替代行为。可选类可以将其与返回或其他返回可选方法的方法相结合,以便to.let to.let the示例。我们不使用可选来编写代码。

  然后,让我们转换上述代码,并使用可选来转换。让我们首先进行可选的滥用,而无需达到平滑的链条API。相反,它很复杂。

  这种重写不仅不成功,而且其操作与第一个代码相同。它不过是使用方法替换原始用户== null.such重写并不是可选的正确用法,让我们再次重写。

  这是可选的正确用途。有一个getter方法),如下

  JDK8之前:

  JDK8之后:

  可以通过实例调用默认方法,可以通过接口名称调用静态方法。

  默认方法可以继承。实现类可以直接调用接口的默认方法,也可以重写接口默认方法。

  静态方法不能继承。无法重写接口的静态方法可用于实现类。

  功能接口

  只有一个,它是一个函数界面。

  @FunctionalInoterFace

  修改后的接口只能定义一个抽象方法。-->功能接口。

  有没有返回值的接口来产生数据。

  相应的lambda表达式:

  有一个无返回值的接口,用于消费数据。使用时,您需要指定一个通用类型来定义参数类型

  Lambda使用:

  有一些与返回值的接口,这些接口基于一种类型的数据获得了另一种类型的数据。前者成为前条件,后者成为后部条件。

  首先,我们已经知道该函数是一个遗传类,它定义了两个通用参数t和R。在函数中,t表示输入参数,r表示返回的结果。

  Lambda用法:

  谓词是一个断点 - UP接口。参数为那就是给出一个参数t并返回布尔型类型的结果。例如,谓词的特定实现也取决于引入的labda表达式。

  基本用途:

  为什么要学习流流?

  JAVA8的流使用功能编程模式。像它的名称一样,它可用于收藏或数组上的链形流动操作(类似于工厂中的输送带)。操作集合或数组更方便。

  流由流生成的背景:

  随着项目的复杂性越来越高,数据源越来越多,无法通过SQL语句查询某些数据,并且以后的组合筛选需要更有效的操作。提高工作效率以及程序的美学和效率。

  2.用例

  通过上面的示例:可以看出,流的便利不仅仅是简单的代码。如果如果有更多的话,如果有更多的滤波信息,则代码不漂亮。仅使用流流:。您还可以执行统计,组等。...操作!

  流流的两个基本特征:

  当时使用流时,通常包括三个基本步骤:

  每次都不会更改原始的流对象,并且新的流对象(可以多次转换),该对象可以像链一样排列其操作,以成为管道。

  顺序流和平行流:

  它是Java8添加的最常用的流接口。

  获取流的方法非常简单,有以下方式:

  流模型的操作非常丰富。这是一些常用的API:

  首先总结了提供的常用操作::

  (延迟)转换操作:

  (延迟)合并操作:;

  (结束)毛质操作:,,,,;

  (结束)其他操作:,。

  将每个元素映射到另一个元素并将其转换为新元素的方法;通过多个步骤转换,您可以编写一个简单清晰的代码。一种元素类型可以转换为另一种元素类型。

  它是将一种转换为另一个转换的最常用的转换方法。

  SO值操作是将操作映射到序列的每个元素。例如:为了计算其正方形,您可以使用函数。我们将此函数映射到序列1、2、3、4、5,并获得另一个功能序列1、4、9、16、25:

  对象接收对象是接口对象,它不仅可以完成数学计算,而且对字符串操作和任何Java对象也非常有用。例如:

  可以在每个元素上测试使用方法,并在被测试元素过滤后可以生成新的方法。

  是的,另一种常用的转换方法。

  SO称为操作是一一测试所有元素。那些不符合条件的人被“过滤”,其余符合条件的要素构成了新的。

  例如,我们调用1、2、3、4和5,输入传输的测试功能用于确定元素是否奇怪,以便均匀的数字被过滤,并且只剩下几率,因此,我们得到了另一个序列1,35:

  接收方法是接口对象。除该值外,它还可以应用于任何Java对象。例如,从苹果中过滤红苹果:

  正确元素的分类非常简单。只需调用该方法:

  此方法所需的每个元素都必须实现接口。如果要自定义排序,则可以传递指定的:

  请注意,这只是一个转换操作,它将返回一个新操作。

  如果您沉重元素,则无需首先转换,可以直接使用它:

  拦截操作通常用于将无限制转换为有限。它用于跳过当前的以前的n元素,并使用它拦截前面N元素的当前最大值:

  拦截操作也是一个转换操作,它将返回新的。

  合并两到可以使用的静态方法:

  如果该元素是一个集合:

  我们想转换以上,我们可以使用:

  因此,so称为元素(此处)(此处)的每个元素的映射,然后合并为新的:

  方法依次激活每个元素并合并结果。它是聚合方法,聚合方法将立即计算。

  这是一种聚合方法,可以将聚合物的所有元素汇总到结果中。

  该方法中传输的对象是接口。操作的操作初始化为指定值(以下是0)。然后,每个元素的调用顺序是最后一个计算的结果。

  如果删除了初始值,我们将得到一个:

  这是因为元素可能是0,因此无法调用的聚合函数,因此返回对象以进一步确定结果是否存在。

  利用,我们还可以更改产品和产品:

  灵活的使用还可以操作Java对象。以下代码演示了如何通过配置文件的每一系列进行收敛并将其运行到一个:

  :一:除了他和一些常用的聚合方法外:

  :二:为目标,和平和附加提供以下汇总方法:

  :三:有一些方法可以测试是否使用元素来满足以下条件:

  最后常用的方法是它可以循环处理的每个元素。我们经常传递我们打印的元素:

  它可以作为集合输出:

  通过该方法,它可以轻松输出到,也可以并行输出。

  由于流不存储数据,因此在数据完成后,需要将流中的数据重新连接到新集合中。以及更常用的,此外,以及其他复杂的用法。

  这只是一个聚合操作。例如,如果要将元素保存到集合中,例如,因为元素是OK Java对象,它不是转换操作,而是聚合操作。它将强制每个元素的输出

  以下代码演示了如何首先过滤一组空字符串,然后将非空字符串保存到中间:

  每个元素收集的方法被调用并传递到对象中。它实际上是一个实例。使用类似的操作,每个元素都会添加到收集器中(实际上)。

  同样,可以收集的每个元素。

  类似于数组流的流元素的输出和列表的输出。我们只需要调用该方法并传递数组的“结构方法”:

  请注意,传递的“建设性方法”是实际上定义了其签名,即传递参数,并获得数组的返回值。

  如果我们想将流的元素收集到映射中,则更麻烦。因为对于每个元素,添加到地图时需要添加键和值。因此,我们必须指定两个映射函数,以将元素映射到键和值:

  还有一个强大的分组函数,可以按组输出。LET查看以下示例:

  使用付费输出,需要提供两个功能:一个是组密钥,在此使用,表明只要首字母分为组,第二个字母是组的值,第二个是组的值。结果如以下内容:

  可以看出,总共有三组,按压,分组和每组。

  假设有这样的课程包括学生名称,课程和结果:

  如果我们有一个,我们可以使用组输出,可以根据成绩或课程非常简单地对其进行分类。

  文件类的lines()方法可以将文件转换为流,每个元素表示内容行:

  此方法对于遍历文本文件非常有用。

  本文参考:<廖雪峰老师的网站>

  ==如果您觉得写作后的写作非常好,让我们再说一遍!主页上有更多的肝脏论文!==

  原始:https://juejin.cn/post/709673459609290789