第一阶段day19

jdk8提供四个函数式接口

1.函数式接口 只能有一个抽象方法
注解
@FunctionalInterface 用于在编译器检查 是否是函数式接口
2.jdk8提供 四个函数式接口
Supplier:供给型接口 生产型接口 :只能return不能带参数。
Consumer:消费型接口:无返回值,可以带参数
Predicate:断言型接口 :返回boolean值
Function<T, R>:函数型接口 :把T类型转换为R型如(T)->return ®t;
predicate
default Predicate and(Predicate<? super T> other)
返回一个由谓词表示短路逻辑和谓词和另一个。
static Predicate isEqual(Object targetRef)
返回测试谓词如果按照 Objects.equals(Object, Object)两个参数都是平等的。
default Predicate negate()
返回一个表示该谓词的逻辑否定的谓词。
default Predicate or(Predicate<? super T> other)
返回一个由谓词表示短路逻辑或该谓词和另一个。
boolean test(T t)
在给定的参数上计算这个谓词。

Stream接口

1.在jdk1.8之后才可以使用 Stream 类似流水线工厂
2.主要作用: 对数据进行过滤 简化代码
3.提供两类方法:
终结方法 >调用这个方法之后 返回的对象不是Stream 对象
延迟方法
>调用这个方法之后 返回的对象 还是Stream 对象
4.Stream 不需要手动关闭 执行完流一些操作自定关闭
5.获取 Stream 接口
(1)stream()只能使用Collection类或者是其子类进行转换Stream流

(2)map集合不能直接转换为Stream流 间接转换
1.获取map所以的键 keySet() ==>Set
2.获取map获取的值 values() ==>Collection
3.把map中的键值转换为一对象 Set<Map.Entry<K,V>> entrySet()

stream常规方法

static Stream concat(Stream<? extends T> a, Stream<? extends T> b)
创建一个懒洋洋的级联流的元素的所有元素的第一流通过第二个流的元素。
long count()
返回此流中元素的计数
Stream filter(Predicate<? super T> predicate)
返回由该流的元素组成的流,该元素与给定的谓词匹配。
void forEach(Consumer<? super T> action)
对该流的每个元素执行一个动作。
Stream limit(long maxSize)
返回一个包含该流的元素流,截断长度不超过 maxSize。
Stream map(Function<? super T,? extends R> mapper)
返回一个流,包括将给定函数应用到该流元素的结果。
static Stream of(T… values)
返回一个元素为指定值的顺序排列的流。
Stream skip(long n)
返回一个包含此流的其余部分丢弃的流的第一 n元素后流。
Stream sorted()
返回由该流的元素组成的流,按自然顺序排序。
Object[] toArray()
返回包含此流元素的数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值