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); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix