常用的函数式接口_Consumer接口练习_字符串拼接输出和Predicate接口
常用的函数式接口_Consumer接口练习_字符串拼接输出
字符串数组当中存有多条信息,请按照格式“姓名:XX。性别:xx。”的格式将信息打印出来。
要求将打印姓名的动作作为第一个Consumer接口的L ambda实例, 将打印性别的动作作为
第二个consumer接口的Lambda实例,将两个consumer接口按照顺序“拼接"到一起。
public class Demo03Tests { //定义一个方法,参数传递String类型的数组和两个Consumer接口,泛型使用String public static void printInfo(String[] arr, Consumer<String> con1,Consumer<String> con2){ //遍历数组 for (String message : arr){ //使用andThen方法连接两个Consumer接口,消费字符串 con1.andThen(con2).accept(message); } } public static void main(String[] args) { //定义一个字符串类型的数组 String[] arr = {"张三,男","李四,女","王五,男"}; //调用方法,传递一个字符串数组,和两个Lambda表达式 printInfo(arr,(message)->{ //消费方式:对message进行切割,获取姓名,按照指定的格式输出 String name = message.split(",")[0]; System.out.print("姓名:"+name); },(message)->{ //消费方式:对message进行切割,获取性别,按照指定的格式输出 String name = message.split(",")[1]; System.out.println("。性别"+name+"。"); }); } }
常用的函数式接口_Predicate接口
有时候我们需要对某种类型的数据进行判断,从而得到一个boolean值结果。这时可以使用
java.util.function.Predicate<T>接口。
抽象方法:test
Predicate接口中包含一个抽象方法:boolean test(T t)。用于条件判断的场景:
条件判断的标准是传入的Lambda表达式逻辑,只要字符串长度大于5则认为很长。
public class DPredicate { public static void main(String[] args) { //定义一个字符串 String s = "abcde"; //调用方法对字符串进行校验,参数传递字符串和Lambda表达式 /*boolean b = check(s,(String str)->{ //对参数传递的字符串进行判断,判断字符串的长度是否大于5,并返回 return str.length()>5; });*/ //优化Lambda表达式 boolean b = check(s,str->str.length()>5); System.out.println(b); } public static boolean check(String s, Predicate<String> pre){ return pre.test(s); } }