Java8新特性—四大内置函数式接口( 四 )

执行结果:
truefalse=====or / and======falsetruefalsetrue=====isEqual======falsetruePredicate接口在JDK中的应用

Java8新特性—四大内置函数式接口

文章插图
Stream中的filter方法,用来过滤不满足条件的元素,使用Predicate传入过滤条件 。看下面例子:
Stream<Integer> stream = Stream.of(-1, 0, 1, 2, 3, 4);stream.filter(s -> s > 0).forEach(System.out::println);执行结果:
1234总结关于JDK1.8为什么要新增这四大内置函数式接口,其实就是Java的开发者将常用于代码的一些普遍场景抽象出来成为接口,而我们可以根据实际业务需求,实现这些接口的具体逻辑 。通过lambda表达式的方式,也可以使得代码更加简洁 。JDK中的函数式接口还有很多,但基本都是在四大函数式接口的基础之上加以拓展,有兴趣的童鞋可以自行研究 。
四大函数式接口的比较
函数式接口对应程序逻辑的抽象具体场景Function程序中映射逻辑的抽象比如我们写得很多的函数:接收入参,返回出参,方法代码块就是一个映射的具体逻辑 。Predicate程序中判断逻辑的抽象比如各种if判断,对于一个参数进行各种具体逻辑的判定,最后返回一个if else能使用的布尔值Consumer程序中的消费型逻辑的抽象就比如Collection体系的ForEach方法,将每一个元素取出,交给Consumer指定的消费逻辑进行消费Suppiler程序中的生产逻辑的抽象就比如最常用的,new对象,这就是一个很经典的生产者逻辑,至于new什么,怎么new,这就是Suppiler中具体逻辑的写法了参考资料
  • JDK8新特性第二篇:四大函数式接口【Function/Consumer/Supplier/Perdicate】、接口的扩展方法【default/static】

经验总结扩展阅读