Consumer接口练习以及常用的函数式接口—Predicate接口的介绍

Consumer接口练习—格式化打印信息

练习:
字符串数组当中存有多条信息,请按照格式“姓名:XX。性别:XX。”格式将信息打印出来。
要求将打印姓名的动作作为第一个Consumer接口的Lambda实例,
将打印性别的动作作为第二个Consumer接口的Lambda实例,
将两个Consumer接口按照顺序“拼接”到一起。

复制代码
public class ConsumerTest {
    //定义一个方法,参数传递String类型的数组和两个Consumer接口,泛型使用String
    public static void printinfo(String[] arr, Consumer<String> con1, Consumer<String> con2) {
        //遍历字符串数组
        for (String s : arr) {
            //使用andThen方法连接两个Consumer接口,消费字符串
            con1.andThen(con2).accept(s);
        }
    }

    public static void main(String[] args) {
        //定义一个字符串类型的数组
        String[] arr = {"张三,男", "李四,男", "王五,女"};
        //调用printinfo方法,参数传递字符串数组和两个Lambda表达式
        printinfo(arr,
                (message) -> {
                    String name = message.split(",")[0];
                    System.out.print("姓名:" + name);
                },
                (message) -> {
                    String age = message.split(",")[1];
                    System.out.println("性别:" + age);
                });
    }
}
复制代码

运行结果:

 

 

 

 

 

 

 

 

 

 

 

常用的函数式接口—Predicate接口

java.util.function.Predicate

作用:

  对某种数据类型的数据进行判断,结果返回一个boolean值

 Predicate接口中包含一个抽象方法:

  boolean test(T t):用来对指定的数据类型的数据进行判断

    结果:

      符合条件,返回true

      不符合条件,返回false

复制代码
public class Demo03Predicate {
    /*
        定义一个方法
        参数传递一个String类型的字符串
        传递一个Predicate接口,泛型使用String
        使用Predicate中的方法test对字符串进行判断,并把判断的结果返回
     */
    public static boolean checkString(String s, Predicate<String> pre){
        return pre.test(s);
    }

    public static void main(String[] args) {
        //定义一个字符串
        String s = "abcdef";
        //调用checkString方法对字符串进行校验,参数传递字符串个Lambda表达式
        /*boolean b = checkString(s,(String str)->{
            //对参数传递的的字符串进行判断,判断字符串的长度是否大于5,并把判断的结果返回
            return str.length()>5;
        });*/
        //优化Lambda表达式
        boolean b = checkString(s,str->str.length()>5);
        System.out.println(b);
    }
}
复制代码

 

posted @   xjw12345  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示