lambda表达式,看完了你就是大佬了!

本文深入探讨了Java中的Predicate接口,包括条件判断、与判断和非判断的使用,以及Function接口的应用,如数据转换和级联转换。通过实例展示了lambda表达式在接口中的运用,强调了类型兼容性在级联转换中的重要性。
摘要由CSDN通过智能技术生成

前面一篇文章介绍了两个常用函数式接口SupplierConsumer接口,今天接着讲另外另个重要函数式接口PredicateFunction接口。这几个接口在Java中应用广泛,比方Stream流式API中就经常用到。

2. Predicate接口

当我们需要对某种数据类型进行判断,得到一个boolean值结果时候,可以采用java.util.function.Predicate<T>接口。比方说对传进来的List判断是否包含某个特定字符PHP。

2.1 条件判断

我们有时候需要进行业务判断,假设我要实现一个功能入参为List,如果List参数满足某个条件则输出对应的结果。比方说下面的代码checkchar()如果入参list1满足某个条件那么输出System.out.println("满足对应条件"),具体条件是什么还不确定,可能是判断List中是否包含某个元素,大小是否符合要求。具体由调用方来实现。

private static boolean checkChar(List list1, Predicate<List> predicateList) {
   
        boolean rs = predicateList.test(list1);
        if (rs) {
   
            System.out.println("满足对应的条件");
        }
        return rs;
    }

下面我们实现main方法调用上面checkchar()方法,并且通过lambda表达式来实现里面具体判断条件。

public static void main(String[] args) {
   
        List list1 = new ArrayList();
        list1.add("PHP");
        list1.add("JAVA");
        list1.add("C++");
        boolean rs = checkChar(list1, s -> {
   
            return s.contains("PHP");
        });

        if (rs) {
   
            System.out.println("list1中包含PHP 字符");
        } else {
   
            System.out.println("list1中不包含PHP 字符");
        }
    }

main方法中,调用checkChar()方法的时候,传入lambda表达式s->{return s.contains("PHP")}来进行判断。这意思就是说在调用checkChar方法的时候如果list1列表中包含PHP这个元素执行System.out.println("满足对应的条件")语句。

上述代码执行结果为:

满足对应的条件
list1中包含PHP 字符

2.2 与判断

上面我们说了单个条件判断,如果想多个条件判断怎么办?可以使用Predicate的and()方法。

我们先定义一个函数,这个函数里会进行两个判断,两个判断具体的逻辑由外部传过来。

private static boolean checkChar2(List list1, Predicate<List> pre, Predicate<List> o
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值