首先说明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() 是否有匹配的元素