文章目录
Lambda表达式
作用
简化程序中匿名内部类代码的书写
前提
只针对函数式接口进行代码编写
函数式接口
特点
接口中仅有一个抽象方法(允许有静态方法,默认方法,私有方法)
@FunctionalInterface //Java对函数式接口制定的注解
public interface Comparator<T> {
...
}
语法
(参数,...)->{
//方法体代码(要做什么事情)
}
- ():代表一个方法,里面的参数为方法的参数
- ->:指向要做的事情
- {}:功能代码(具体要做的事情)
省略模式
- 可以省略参数类型:要么全都省略,要么全都保留
- 如果参数仅有一个时,可以省略小括号
- 如果代码块中仅有一行代码时,可以省略:大括号,分号,return
和匿名对象类的区别
Stream流
思想
流水线那样工作
作用
针对集合进行简化开发
Stream流的使用通常需要Lambda表达式
三类方法
- 获取方法:获取流(创建一个流水线)
- 中间方法:在流水线上进行操作
- 终结方法:流水线上的操作结束了,要关闭流水线(最后一个操作),一个Stream流只能有一个终结方法
获取方法
单列集合(Collection[List,Set
Stream 流对象 = 单列集合.stream();
双列集合Map(不能直接获取)
- 先通过keySet()或EntrySet()获取Set集合
- Stream 流对象 = Set集合.stream();
数组
Stream 流对象 = Arrays.stream(数组);
同一类型元素(Stream中的静态方法)
Stream 流对象 = Stream.of(同一类型元素,同一类型元素,…);
常见的中间方法
终结方法
收集方法
Optional类
可以用这个类中的方法判断是否为空