Java8新特性探索之函数式接口( 三 )
输出结果:
张三的钱包原本只有500元 , 自驾川西得去银行再取1000元 , 取钱后张三钱包总共有1500元第一晚在成都住宿前有1500元交完200住宿费还剩余1300元第二天出发前发现油不足 , 加油前有1300元加油300后还剩余1000元到达景区门口 , 买景区票前有1000元买景区票290后还剩余710元第二晚在九寨县住宿前有710元交完200住宿费还剩余510元最后张三返程到家还剩余510元
其他的函数型函数式接口汇总说明:
接口名称方法名称方法签名BiFunctionapply(T, U) -> RDoubleFunctionapply(double) -> RDoubleToIntFunctionapplyAsInt(double) -> intDoubleToLongFunctionapplyAsLong(double) -> longIntFunctionapply(int) -> RIntToDoubleFunctionapplyAsDouble(int) -> doubleIntToLongFunctionapplyAsLong(int) -> longLongFunctionapply(long) -> RLongToDoubleFunctionapplyAsDouble(long) -> doubleLongToIntFunctionapplyAsInt(long) -> intToDoubleFunctionapplyAsDouble(T) -> doubleToDoubleBiFunctionapplyAsDouble(T, U) -> doubleToIntFunctionapplyAsInt(T) -> intToIntBiFunctionapplyAsInt(T, U) -> intToLongFunctionapplyAsLong(T) -> longToLongBiFunctionapplyAsLong(T, U) -> long
断言型接口Predicate
java.util.function.Predicate 接口中包含一个抽象方法: boolean test(T t), 用于条件判断的场景 。 默认方法:and or nagte (取反) 。
接口源码:
package java.util.function;import java.util.Objects;@FunctionalInterfacepublic interface Predicate {boolean test(T t);default Predicate and(Predicate super T> other) {Objects.requireNonNull(other);return (t) -> test(t)}default Predicate negate() {return (t) -> !test(t);}default Predicate or(Predicate super T> other) {Objects.requireNonNull(other);return (t) -> test(t) || other.test(t);}staticPredicate isEqual(Object targetRef) {return (null == targetRef)? Objects::isNull: object -> targetRef.equals(object);}}
既然是条件判断 , 就会存在与、或、非三种常见的逻辑关系 。 其中将两个 Predicate 条件使用与逻辑连接起来实现并且的效果时,类始于 Consumer接口 andThen()函数 其他三个雷同 。
public class PredicateTest { /*** 查找在渝北的Jack*/ @Test public void findByPredicateTest() {List
输出结果:
User [name=Jack, address=渝北]
其他的断言型函数式接口汇总说明:
接口名称方法名称方法签名BiPredicatetest(T, U) -> booleanDoublePredicatetest(double) -> booleanIntPredicatetest(int) -> booleanLongPredicatetest(long) -> boolean
四、总结Lambda 表达式和方法引用并没有将 Java 转换成函数式语言 , 而是提供了对函数式编程的支持 。 这对 Java 来说是一个巨大的改进 , 因为这允许你编写更简洁明了 , 易于理解的代码 。
- 推新标准建新生态,下载超198亿次金山发力海内外
- 麒麟|荣耀新款,麒麟810+4800万超清像素,你还在犹豫什么呢?
- GB|备货充足要多少有多少,5000mAh+128GB,红米新机首销快速现货
- 空调|让格力、海尔都担忧,中国取暖“新潮物”强势来袭,空调将成闲置品?
- 采用|消息称一加9系列将推出三款新机,新增一加9E
- 人民币|天猫国际新增“服务大类”,知舟集团提醒入驻这些类目的要注意
- 程序|2020全景生态流量秋季大报告:TOP100APP超半数布局小程序,全景流量重塑行业竞争新格局
- 国产手机|国产手机新品频发,果粉们你们还能忍得住吗?
- 自动|碳博士控股子公司推出最新款自动驾驶清扫车
- 世代|Z星球——腾讯布局Z世代教育社交的新尝试