JDK 8 新特性学习(二) Lambda表达式、集合流之操作

xiaoxiao2021-02-27  280

JDK 8 新特性学习(二) Lambda表达式、集合流之操作

Lambda表达式

首先说明lamdba的作用: 1. 将函数作为方法参数 2. 将代码当做数据

形式:

(parameter) -> expression

(parameters) -> {}

容易犯的错误,是将lambda这一部分当做实现。lambda应该是作为计算出来的一个值,赋给要用的方法或者函数.

例子:

new Thread(() -> { System.out.println("nokia"); }).start();

要点:

要使用lamdba表达式,需要定义一个函数式接口在java 8中,只有一个方法的接口的类可以认为是一个函数。然后使用的时候不必声明函数类型,由接口的方法签名自动推导出来。java 8中预先定义了一些函数来避免建立过多的lambda接口, 比如Function

集合的流操作

串行和并行的流 流有串行和并行两种,串行流上的操作是在一个线程中依次完成,而并行流则是在多个线程上同时执行。并行与串行的流可以相互切换:通过 stream.sequential() 返回串行的流,通过 stream.parallel() 返回并行的流。

在stream的时候,可以做一些中间操作: 1. filter()对元素进行过滤 2. sorted()对元素排序 3. map() 对元素的映射 4. distinct() 去除重复元素 5. subStream() 获取子Stream

在终止的时候,也可以做一些操作: 1. forEach() 对每个元素做处理 2. toArray() 把元素到导出到数组 3. findFirst() 返回第一个匹配的元素 4. anyMatch() 是否有匹配的元素


仍然没有明白lambda的应该具体使用和好处,还需要更多的实践
转载请注明原文地址: https://www.6miu.com/read-6283.html

最新回复(0)