JDK1.8的新特新介绍
- Lambda表达式
- 函数式接口
- 方法引用
- 接口的默认方法和静态方法
- Optional
- Streams流
- 并行数组
1、函数式接口
1.1、四种函数型接口
1.1.1、函数型接口
接口Function<T, R>其中方法R apply(T t),输入一个限定类型参数,输出一个限定类型参数,当然两种类型可以一致。
1.1.2、断言型接口
接口Predicate<T>其中方法boolean test(T t),输入一个限定类型参数,输出一个boolean类型的返回值。
1.1.3、消费型接口
接口Consumer<T>其中方法void accept(T t),输入一个限定类型参数,无输出值。
1.1.4、供给型接口
接口Supplier<T>其中方法T get(),没有输入参数,输出一个限定类型参数。
1.2、特性说明
只要是函数式接口都可以使用lambda表达式,lambda表达式允许把函数作为一个方法的参数。如:(arg) -> {// 业务代码}。
2、Stream流
接口Stream<T>,让JAVA实现了链式编程的重要核心。
| 方法 | 说明 |
|---|---|
| filter | 元素过滤,对Stream对象按照指定的Predicate进行过滤,返回的Strema对象中仅包含满足条件的元素 |
| map [mapToInt] [mapToLong] [mapToDouble] | 元素一对一转换,使用传入的Function对象对Stream中所有元素进行映射处理,返回的Stream对象中的元素为原元素处理后的结果 |
| flatMap (flatMapToInt) (flatMapToLong) (flatMapToDouble) | 元素一对多转换,对Stream对象中的所有元素进行操作,每个元素会有一个或多个结果,然后将所有的元素组合成一个统一的Stream并返回 |
| distinct | 元素去重,返回去重后的Stream对象 |
| sorted [sorted(Comparator<? super T> comparator)] | 元素排序,返回排序后的Stream对象 |
| limit | 元素截取,返回有限个元素组成新的Stream对象 |
| skip | 元素跳过,抛弃前指定个元素后,使用剩下的元素组成新的Stream对象返回 |
| peek | 生成一个包含原Stream的所有元素的新Stream,同时会提供一个消费函数即引用的方法,当Stream每个元素被消费的时候都会先执行新Stream给定的方法 |
本文来自博客园,作者:是老胡啊,转载请注明原文链接:https://www.cnblogs.com/solar-9527/p/15906389.html

浙公网安备 33010602011771号