Consumer<T>:包含两个方法
void accept(T t):对给定的参数执行操作
default Consumer <T> andThen(Consumer after):返回一个组合的Consumer,依次执行此操作,然后执行after操作
package Demo0512;
import java.util.function.Consumer;
public class ConsumerDemo {
    public static void main(String[] args) {
        //调用
        operatorString("最美不过姑娘你",s-> System.out.println(s));
        System.out.println("-----------------------------------------------------------");
        //调用消费两个字符串
        operatorStringtwo("最美不过姑娘你",s-> System.out.println(s),s-> System.out.println(new StringBuilder(s).reverse().toString()));
    }
    //定义一个方法,消费一个字符串数据
    private static void operatorString(String name, Consumer<String> ca){
        ca.accept(name);
    }
    //定义一个方法,消费两个个字符串数据
    private static void operatorStringtwo(String name, Consumer<String> ca,Consumer<String> co){
        ca.andThen(co).accept(name);
    }
}
练习:
1.定义一个字符串数组String [] name={"张三,30","李四,45","王五,52"};
2.将信息按照姓名: ;年龄 : ;格式打印
3.要求将打印姓名的动作作为第一个Consumer接口的Lambda实例,将打印年龄的动作作为第二 个Consumer接口的Lambda实例并组合起来
package Demo0512;
import java.util.function.Consumer;
public class ConsumerDemo01 {
    public static void main(String[] args) {
        //定义一个字符串数组
        String[] name = {"张三,15", "李四,56", "王五,56"};
        //调用方法
        stringInfo(name, str -> {
            String name1 = str.split(",")[0];
            System.out.print("姓名:" + name1);
        }, str -> {
            int age = Integer.parseInt(str.split(",")[1]);
            System.out.println("年龄:" + age);
        });
}
    //定义一个方法,进行组合操作
    private static void stringInfo(String[] name, Consumer<String> cp, Consumer<String> co) {
        //遍历字符串数组
        for (String str : name) {
            cp.andThen(co).accept(str);
        }
    }
}
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号