1 Lambda表达式
2 函数式接口
(1)Java内置的函数式接口


(2)java内置的4大核心函数式接口
- 消费型接口 Consumer void accept(T t)
- 供给型接口 Supplier T get()
- 函数型接口 Function R apply(T t)
- 断定型接口 Predicate boolean test(T t)
3 方法引用与构造器引用
当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用!
如下三种主要使用情况:
- 对象::实例方法名
- 类::静态方法名
- 类::实例方法名
4 构造器与数据引用的使用
格式:
ClassName::new
5 强大的Stream API
(1)Stream的实例化
- 创建 Stream方式一:通过集合
default Stream stream() : 返回一个顺序流
default Stream parallelStream() : 返回一个并行流 - 创建 Stream方式二:通过数组
用Arrays类的static Stream stream(T[] array): 返回一个流 - 创建 Stream方式三:通过Stream的of()
Stream stream = Stream.of(1, 2, 3, 4, 5, 6); - 建 Stream方式四:创建无限流
迭代
public static Stream iterate(final T seed, final UnaryOperator f)
生成
public static Stream generate(Supplier s)
(2)Stream的中间操作:筛选与切片

(3)Stream的中间操作:映射

(4)Stream的中间操作:排序

(5)Stream的终止操作:匹配与查找

(6)Stream的终止操作:归约

(7)Stream的终止操作:收集

6 Optional类
Optional 类(java.util.Optional) 是一个容器类,它可以保存类型T的值,代表这个值存在。或者仅仅保存null,表示这个值不存在。原来用null 表示一个值不存在,现在Optional 可以更好的表达这个概念。并且可以避免空指针异常。Optional类:为了在程序中避免出现空指针异常而创建的。
Optional.of(T t) : 创建一个 Optional 实例,t必须非空;
Optional.empty() : 创建一个空的 Optional 实例;
Optional.ofNullable(T t):t可以为null;
T orElse(T other) :如果有值则将其返回,否则返回指定的other对象;