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个元素 |