常用函数式接口--Supplier,常用函数式接口--Consumer,Consumer默认方法--andThen,Consumer接口练习--格式化打印信息

黑马程序员

常用函数式接口–Supplier

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

练习–求数组元素最大值
在这里插入图片描述
在这里插入图片描述

package Lambda_Return;

import java.util.function.Supplier;

public class SupplierDemo {

    public static int getMax(Supplier<Integer> sup){
        return sup.get();
    }

    public static void main(String[] args) {

        int[] arr={1,2,3,45,8,99,104};

        int max=getMax(()->{
            int maxTmp=arr[0];
            for (int i : arr) {
                if (i>maxTmp)
                    maxTmp=i;
            }
            return maxTmp;
        });

        System.out.println(max);
    }
}

常用函数式接口–Consumer

在这里插入图片描述
在这里插入图片描述

package Lambda_Return;

import java.util.function.Consumer;

public class ConsumerDemo {

    public static void method(String name, Consumer<String> con){
        con.accept(name);
    }

    public static void main(String[] args) {
        method("小红",(name)->{
            System.out.println(name);
        });
    }
}

在这里插入图片描述

Consumer默认方法–andThen

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package Lambda_Return;

import java.util.function.Consumer;

public class Consumer_andThen {

    public static void method(String s, Consumer<String > con1,Consumer<String> con2){
        con1.andThen(con2).accept(s);
    }

    public static void main(String[] args) {
        method("Hello",(s)->{
            System.out.println(s.toLowerCase());
        },(s)->{
            System.out.println(s.toUpperCase());
        });
    }
}

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

在这里插入图片描述

package Lambda_Return;

import java.util.function.Consumer;

public class ConsumerTest {
    public static void main(String[] args) {
        String[] arr={"古力娜扎,女","迪丽热巴,女","戈尔马丹,男",};

        printInfo(arr,(s)->{
            String[] split = s.split(",");
            System.out.print("姓名:"+split[0]);

        },(s)->{
            String[] split = s.split(",");
            System.out.println("  性别:"+split[1]);
        });
    }

    public static void printInfo(String[] msg, Consumer<String> name,Consumer<String> sex){
        for (String s : msg) {
            name.andThen(sex).accept(s);
        }
    }
}

姓名:古力娜扎  性别:女
姓名:迪丽热巴  性别:女
姓名:戈尔马丹  性别:男

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值