jdk8新特性-四大函数式接口(Consumer、Supplier、Function、Predicate)使用样例_jdk8 consumer function(2)

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取


一、Consumer:消费型接口

package functional;


import java.util.function.Consumer;
import java.util.stream.Stream;

/\*\*
 \* FunctionalInterface Consumer test
 \*
 \* @author dd
 \* @since 2021/12/14
 \*/
public class ConsumerTest {
    private static Stream stream = Stream.of("aaa", "bbb", "ddd", "ccc", "fff");

    /\*\*
 \* 常规接口实现写法
 \*/
    public static void test1() {
        Consumer consumer = new Consumer() {
            @Override
            public void accept(Object o) {
                System.out.println(o.toString());
            }
        };
        stream.forEach(consumer);
    }

    /\*\*
 \* 函数式接口实现写法
 \*/
    public static void test2() {
        Consumer consumer = (s) -> System.out.println(s.toString());
        stream.forEach(consumer);
    }

    /\*\*
 \* 函数式接口简化写法
 \*/
    public static void test3() {
        stream.forEach((s) -> System.out.println(s.toString()));
    }

    /\*\*
 \* 函数式接口方法引用实现写法
 \*/
    public static void test4() {
        Consumer consumer = System.out::println;
        stream.forEach(consumer);
    }

    /\*\*
 \* 函数式接口方法引用实现简化写法
 \*/
    public static void test5() {
        stream.forEach(System.out::println);
    }


}



二、Supplier:供给型接口

package functional;

import java.util.Random;
import java.util.function.Supplier;

/\*\*
 \* FunctionalInterface Supplier test
 \*
 \* @author dd
 \* @since 2021/12/14
 \*/
public class SupplierTest {

    /\*\*
 \* 常规接口实现写法
 \*/
    public static void test1() {
        Supplier supplier = new Supplier() {
            @Override
            public Object get() {
                return new Random().nextInt();
            }
        };
        System.out.println(supplier.get());
    }

    /\*\*
 \* 函数式接口实现写法
 \*/
    public static void test2() {
        Supplier supplier = () -> new Random().nextInt();
        System.out.println(supplier.get());
    }

    /\*\*
 \* 函数式接口方法引用实现写法
 \*/
    public static void test3() {
        Supplier supplier = Math::random;
        System.out.println(supplier.get());
    }
}



三、Function:函数型接口

package functional;

import java.util.function.Function;
import java.util.stream.Stream;

/\*\*
 \* FunctionalInterface function test
 \*
 \* @author dd
 \* @since 2021/12/14
 \*/
public class FunctionTest {
    private static Stream stream = Stream.of("aaa", "bbb", "ddd", "ccc", "fff");

    /\*\*
 \* 常规接口实现写法
 \*/
    public static void test1() {
        Function function = new Function() {
            @Override
            public Object apply(Object o) {
                return o.hashCode();
            }
        };
        System.out.println(function.apply("dd"));
    }

    /\*\*
 \* 函数式接口实现写法
 \*/
    public static void test2() {
        Function function = (s) -> s.hashCode();
        System.out.println(function.apply("dd"));
    }
    /\*\*
 \* 函数式接口
 \* stream应用
 \*/
    public static void test3() {
        Function function = (s) -> s.hashCode();
        Stream mapStream = stream.map(function);
        mapStream.forEach(System.out::println);
    }

    public static void main(String[] args) {
        FunctionTest.test3();


![img](https://img-blog.csdnimg.cn/img_convert/e79ccad66b5f0706967d0c3dc6207a6f.png)
![img](https://img-blog.csdnimg.cn/img_convert/1a957453c151c56f34cf3b36aa02d387.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值