Lambda表达式的目标类型必须是函数式接口。函数式接口代表只包含一个抽象方法的接口
| 四大函数式接口 | 参数 | 返回 | 描述 |
|---|---|---|---|
| Consumer<T> | T | void | 指定一个泛型传入 |
| Supplier<T> | 无 | T | 指定一个泛型并返回 |
| Predicate<T> | T | 布尔 | 输入参数进行判断,然后返回布尔值 |
| Function<T,R> | T | R | 两个参数,T输入 R输出 |
| Stream | 描述 |
|---|---|
| Stream | 一种链式函数式编程,流终结了就不能再次操作,简化Collection集合操作 |
| void forEach(Consumer<? super T> action); | 用来便利,终结方法 |
| Stream<T> filter(Predicate<? super T> predicate); | 用于过滤,返回符合条件的元素 |
| <R> Stream<R> map(Function<? super T, ? extends R> mapper); | 输入一个参数,返回一个参数 |
| long count(); | 终结方法,返回元素个数 |
| Stream<T> limit(long maxSize); | 截取前n个元素 |
| Stream<T> skip(long n); | 跳过前n个元素 |