145-Predicate接口-用来判断,里面有个test方法

1.Predicate接口的基本使用

java.util.function.Predicate<T>接口
对某种类型的数据进行判断,从而得到一个boolean值

Predicate接口中包含一个抽象方法
  boolean test(T t); 用来对指定类型数据进行判断的方法
  结果:
     符合条件;返回true  不符合条件: 返回false
package Demo19;

import java.util.function.Predicate;

/*
java.util.function.Predicate<T>接口
对某种类型的数据进行判断,从而得到一个boolean值

Predicate接口中包含一个抽象方法
  boolean test(T t); 用来对指定类型数据进行判断的方法
  结果:
     符合条件;返回true  不符合条件: 返回false
 */
public class Demo09Predicate {
    /*
    定义一个方法
    参数传递一个String类型的字符串
    传递一个Predicate接口,泛型使用String
    使用Predictor中的方法test对字符串进行判断,并把判断的结果返回
     */
    public static boolean checkString(String s , Predicate<String> pre){
        return pre.test(s);
    }

    public static void main(String[] args) {
        //定义一个字符串
        String s = "abcde";
     boolean b=checkString(s,(String str )->{
         //对参数传递的字符串进行判断,判断字符串的长度是否大于五并返回
               return str.length()>5;
        });
        System.out.println(b); //false
    }
}

2.Predicate中的and方法

逻辑表达式:可以连接多个判断的条件
&&:与运算符,有false则false
||:或运算符,有true则true
!:非 也叫取反运算符,非真则假非假则真

需求:判断一个字符串有两个判断条件:
1.字符串的长度是否大于五
2.判断字符串中是否包含a
要求两个条件必须同时满足,我们就可以使用&&运算符连接两个条件

Predicate接口中有一个方法:and  表示并且关系也可以用于联系两个判断条件
方法内部两个判断条件也是使用&&运算符连接起来的
public class Demo10Predicate {
    /*
    定义一个方法,方法的参数,传递一个字符串
    传递两个Predicate接口
       一个用于判断字符串的长度是否大于5
       一个用于判断字符串中是否包含a
       两个条件必须同时满足
     */
    public static boolean checkString(String s, Predicate<String> pre01, Predicate<String> pre02){
     //return  pre01.test(s)&&pre02.test(s); //这里就是与输出true 或 false
      return  pre01.and(pre02).test(s); //与上面等价的
    }

    public static void main(String[] args) {
        //定义一个字符串
        String str = "abcdef";
        //调用checkString方法,参数传递字符串和两个Lambda表达式
        boolean b = checkString(str, (String s) -> {
            //一个用于判断字符串的长度是否大于5
            return s.length()>5;
        }, (String s) -> {
            //一个用于判断字符串中是否包含a
            return s.contains("a");
        });
        System.out.println(b);  //输出true 字符串大于五包含a  true&&true=true
    }
}

3.or 

需求:判断一个字符串有两个判断条件:
1.字符串的长度是否大于五
2.判断字符串中是否包含a
满足一个条件即可
package Demo19;

import java.util.function.Predicate;

/*
需求:判断一个字符串有两个判断条件:
1.字符串的长度是否大于五
2.判断字符串中是否包含a
满足一个条件即可
 */
public class Demo11Predicate {
    public static boolean checkString(String s, Predicate<String> pre01, Predicate<String> pre02){
        return  pre01.test(s)||pre02.test(s); //这里就是与输出true 或 false
        //return  pre01.or(pre02).test(s); //与上面等价的
    }

    public static void main(String[] args) {
        //定义一个字符串
        String str = "abc";
        //调用checkString方法,参数传递字符串和两个Lambda表达式
        boolean b = checkString(str, (String s) -> {
            //一个用于判断字符串的长度是否大于5
            return s.length()>5;
        }, (String s) -> {
            //一个用于判断字符串中是否包含a
            return s.contains("a");
        });
        System.out.println(b);  //输出true 字符串小于五包含a  false||true=true
    }
}

3.negate

需求:
判断一个字符串长度是否大于5
 如果字符串长度大于5,返回false
 字符串长度不大于5返回true
 所以我们可以使用取反符号对判断的结果进行取反

 Predicate方法中negate,也表示取反的意思
package Demo19;

import java.util.function.Predicate;

/*
需求:
判断一个字符串长度是否大于5
 如果字符串长度大于5,返回false
 字符串长度不大于5返回true
 所以我们可以使用取反符号对判断的结果进行取反

 Predicate方法中negate,也表示取反的意思
 */
public class Demo12Predicate {
    public static  boolean checkString(String s, Predicate<String> pre ){
        //return !pre.test(s);
        return pre.negate().test(s);//与上面代码作用相同
    }

    public static void main(String[] args) {
        //定义一个字符串
      String s = "ABCDEF";
        //调用checkString方法,参数传递字符串和Lambda表达式
        boolean b =  checkString(s,(String str)->{
            return s.length()>5;
        });
        System.out.println(b);//false
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值