一、多线程编程
二、流式编程
1、目的
简化集合和数组的操作
注意:每个流只能使用一次
2、获取流的方式
(1)单列集合:stream方法
KeySet()/values()/EntrySet()
(2)数组:Stream的静态方法of
Stream.of(arr)
3、方法分类
(1)延迟方法:返回值是Stream自身类型
(2)终结方法:不返回流自身类型,如count和forEach
4、流中的常用方法
(1)filter
将一个流转换成另一个子集流
Stream<T> filter(Predicate<? super T> predicate);//判断的接口test
Predicate接口中的抽象方法:boolean test()
(2)map
将流中的元素映射到另一个流中
<R> Stream<R> map(Function<? super T, ? extends R> mapper);
java.util.stream.Function 函数式接口,唯一抽象方法apply
(3)limit
对流截取,只取前n个
返回截取后的流
(3)skip
跳过前几个元素,可以使用 skip 方法获取一个截取之后的新流
(4)静态方法:Stream.concat
合并两个流,属于Stream的静态方法
5、进一步简化
函数式接口->Lambda表达式->方法引用
System.out::println
Math::abs
System.out 中的 println 方法来取代Lambda
方法引用的写法复用了已有方案,更加简洁