栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

1.Predicate接口的基本使用

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

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

import java.util.function.Predicate;


public class Demo09Predicate {
    
    public static boolean checkString(String s , Predicate 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 {
    
    public static boolean checkString(String s, Predicate pre01, Predicate 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;


public class Demo11Predicate {
    public static boolean checkString(String s, Predicate pre01, Predicate 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;


public class Demo12Predicate {
    public static  boolean checkString(String s, Predicate 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
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号