Java函数式接口

1. Consumer接口

接受一个固定类型的参数,无返回值

//使用方式
// 1 使用consumer接口实现方法
Consumer<String> consumer = new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        };
// 2 lambda函数方式
Consumer<String> consumer = (s) -> System.out.println(s);
// 3 使用方法引用,方法引用也是一个consumer
stream = Stream.of("aaa", "bbb", "ddd", "ccc", "fff");
Consumer consumer2 = System.out::println;
stream.forEach(consumer);

2. Supplier 接口

返回一个固定类型的对象 无参数

//① 使用Supplier接口实现方法,只有一个get方法,无参数,返回一个值
Supplier<Integer> supplier = new Supplier<Integer>() {
    @Override
    public Integer get() {
        //返回一个随机值
        return new Random().nextInt();
    }
};
//② 使用lambda表达式,
supplier = () -> new Random().nextInt();

//③ 使用方法引用
Supplier<Double> supplier2 = Math::random;

3.Function 接口

// function的作用是转换,将一个值转为另外一个值
Function<String, Integer> function = new Function<String, Integer>() {
    @Override
    public Integer apply(String s) {
        return s.length();//获取每个字符串的长度,并且返回
    }
};
// lambda 写法
Function<String, Integer> function =  (s)->{
    return s.length();
}

posted @ 2023-04-21 11:01  FromZeroToOne  阅读(30)  评论(0编辑  收藏  举报