【java】四大函数式接口

狂神老师的视频地址:https://space.bilibili.com/95256449
新时代的程序员:lambda表达式、链式编程、函数式接口、Stream流式计算

1、 四大函数式接口

用来简化编程

  • 函数式接口: 只有一个方法的接口

两个参数一个是输入值,一个是返回值

public class Main {

    interface TestLambda {
        void run();
    }

    public static void main(String[] args) {
        TestLambda testLambda;
        testLambda = ()->{
            System.out.println("lambda");
        };
        testLambda.run();
    }
}
  • 断定型接口

  • 消费型接口

  • 供给型接口

2、Stream流计算

/*
 * 一行代码搞定筛选用户中id为奇数,id大于1,并且输出用户名大写,正序,限定输出一个
 *
 * */
public class TestStream {
    public static void main(String[] args) {
        User u1 = new User(1, "a");
        User u2 = new User(2, "b");
        User u3 = new User(3, "c");
        User u4 = new User(4, "d");
        //存储交给集合
        List<User> list = Arrays.asList(u1, u2, u3, u4);
        //计算交给流
        list.stream()
                .filter(u -> { return u.getId() % 2 != 0; })
                .filter(u -> { return u.getId() > 1; })
                .map(u -> { return u.getName().toUpperCase(); })
                .sorted((uu1, uu2) -> { return uu1.compareTo(uu2); })
                .limit(1)
                .forEach(System.out::println);
    }
}

这样的代码格式也就是链式编程,里面底层都是函数式接口。

posted @ 2022-06-19 20:26  吴承勇  阅读(253)  评论(0编辑  收藏  举报