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

来源:互联网 发布:国产蓝牙耳机知乎 编辑:程序博客网 时间:2024/06/07 16:08

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

Lambda表达式

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

形式:

(parameter) -> expression

(parameters) -> {}

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

例子:

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

要点:

  1. 要使用lamdba表达式,需要定义一个函数式接口
  2. 在java 8中,只有一个方法的接口的类可以认为是一个函数。然后使用的时候不必声明函数类型,由接口的方法签名自动推导出来。
  3. 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() 是否有匹配的元素


  1. 仍然没有明白lambda的应该具体使用和好处,还需要更多的实践
0 0
原创粉丝点击