Supplier<T>接口
是生产接口,里面对应的抽象方法是T get(); 返回值类型就是接口上定义的类型也就是它接口泛型定义什么类型,get方法返回的就是什么类型。
Consumer<T>接口
消费接口,具体消费就是不返回任何类型,在逻辑代码中打印输出和使用
里面对应的抽象方法是 void accept(T t)
接口中要有默认方法Consumer andThen(Consumer<? super T> after)。
Predicate<T>接口
判断的接口,返回值是boolean结果
里面有对应的抽象方法 boolean test(T t)
&& and()
|| or()
! negate
Function<T,R>接口
转换的方法
里面的抽象方法有 R apply(T t)
默认方法 andThen()
Stream流
获取流对象两种方式
1.在java8之后,每个单例集合中都有一个方法Stream()方法,把我们单例集合变成Stream对象进行操作
2.用Stream对象中的of去添加元素返回Stream对象进行使用
常用方法
延迟方法,方法的返回值类型还是Stream对象,特点就是可以链式编程
终结方法,方法的放回值不是Stream对象,不能继续调用Stream中的方法
常用方法
1, void forEach(consumer<? super T> action):循环遍历Stream中的元素
2, Stream<T> filter(Predicate<? super T> predicate):过滤集合中的元素,如果是true就存储,如果是false就过滤
3, Stream<R> map(Function<? super T, ? extends R>):转换的方法也叫映射。
4, long count():获取Stream流中的元素个数
5, Stream<T> limit(long maxSize):截取指定参数的个数,从头截取
6, Stream<T> skip(long n):希望跳过前几个元素的方法,
7, Stream <T>concat(Stream<?extends T> a,Stream<?extends T > b):拼接方法,把两个Stream流对象拼接成一个流对象。
方法引用
概念:帮助我们再一次去简化lambda的格式
格式 对象名::方法名称
|
|