Predicate

Predicate

  1. boolean test(T t):用来指定数据类型进行判段的方法
import java.util.function.Predicate;

/*
*   java.util.function.Predicate<T>接口
*   作用:对某种数据类型的数据进行判断,返回一个boolean值
*   Predicate接口中包含一个抽象方法:
*       boolean test(T t):用来指定数据类型进行判段的方法
*
* */
public class Demo1 {
    //判断字符串的长度
    public static boolean method(String s, Predicate<String> pre){
        return pre.test(s);
    }

    public static void main(String[] args) {
       boolean result = method("abcdasdsad",(s)->s.length()>5);
        System.out.println(result);
    }
}

  1. Predicate的逻辑与的使用,或运算和取反和与一样
/*
 *   逻辑表达式:可以连接多个判断的条件
 *   &&:与运算,有false则false
 *   ||:或运算,有true则true
 *   !: 取反
 *   需求:
 *       1.判断字符串的长度是否大于5
 *       2.字符串是否包含a
 * */

import java.util.function.Predicate;

public class Demo2 {
    public static boolean method(String s, Predicate<String> pre1, Predicate<String> pre2) {
        return pre1.test(s) && pre2.test(s);
    }

    public static void main(String[] args) {
        boolean result = method("abceff",(s) -> {
            return s.length()>5;
        },(s)->{
            return s.contains("a");
        });
        System.out.println(result);
    }
}
  1. 练习
import java.util.ArrayList;
import java.util.function.Predicate;

/*
 *  练习:集合信息的筛选
 *  请通过Predicate接口实现
 *  同时满足:
 *      1. 必须是女
 *      2. 姓名为4个字
 *
 * */
public class Demo3 {
    public static ArrayList<String> filter(String[] arr, Predicate<String> pre1, Predicate<String> pre2){
        ArrayList<String> list = new ArrayList<>();
        for (String item:arr) {
            boolean result = pre1.test(item) && pre2.test(item);
            if(result)
                list.add(item);
        }
        return list;
    }

    public static void main(String[] args) {
        String[] arr = {"迪丽热巴,女","古力娜扎,女","马儿扎哈,男","赵丽颖,女"};
        ArrayList<String> list = filter(arr,(s)->{
           return s.split(",")[0].length()==4;
        },(s)->{
            return s.split(",")[1].equals("女");
        });
        System.out.println(list.toString());
    }
}
posted @ 2022-10-12 23:46  彼时听风  阅读(439)  评论(0)    收藏  举报