四大函数式接口

lambda表达式,链式编程,函数式接口,Stream流式计算

函数式接口(只有一个方法的接口)

  • 简化编程模型
  • 在新版本的框架底层大量应用
  • foreach(消费者类型的函数式接口)

四大函数式接口

Function 有一个输入参数,有一个输出参数

/*函数式接口
* 有一个输入参数,有一个输出参数,可以用Lambda表达式简化*/
public class FunctionTest {
    public static void main(String[] args) {

       /* //输出输入的值
        Function<String, String> function = new Function<String, String>() {
            @Override
            public String apply(String o) {
                return o;
            }
        };*/

        //Lambda表达式简化
        Function function=(str)->{return str;};
        System.out.println(function.apply("s"));
    }
}

Predicate 断定型接口 只有一个输入参数,返回一个布尔值

public class PredicateTest {
    /*
    * 断定式接口只有一个输入参数,返回一个布尔值*/
    public static void main(String[] args) {
        /*Predicate<String> predicate = new Predicate<String>() {
            @Override
            public boolean test(String s) {
                return false;
            }
        };*/
        //lambda表达式
        Predicate<String> predicate=(Str)->{return Str.isEmpty();};
        System.out.println(predicate.test(""));
    }
}

Consumer 消费型接口 只有输入没有返回值

public class ConsumerTest {
    public static void main(String[] args) {
        /*new Consumer<String>() {
            @Override
            public void accept(String o) {
                System.out.println(o);
            }
        }.accept("asasas");*/

        //lambda方式
        Consumer<String> consumer=(str)->{
            System.out.println(str);
        };
        consumer.accept("zzz");
    }
}

Supplier 供给型接口 只有返回值没有输入

public class SupplierTest {
    public static void main(String[] args) {
       /* System.out.println(new Supplier<String>() {
            @Override
            public String get() {
                return "xxx";
            }
        }.get());*/

        //lambda方式
        Supplier<String> supplier=()->{return "1024";};
        System.out.println(supplier.get());
    }
}
posted @ 2022-01-16 17:17  一刹流云散  阅读(38)  评论(0编辑  收藏  举报