Java Lambda

Posted junjie2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Lambda相关的知识,希望对你有一定的参考价值。

 

函数式接口 参数类型 返回类型 抽象方法 描述 其他方法
Runnable void run 作为无参数和返回值的动作运行  
Supplier<T> T get 提供一个T类型的值  
Consumer<T> T void accept 处理一个T类型的值 andThen
BiConsumer<T> T,U void accpet 处理T和U类型的值 andThen
Function<T,R> T R apply 有一个T类型参数的函数 compose,andThen,identity
BiFunction<T,U,R> T,U R apply 有T和U类型参数的函数 andThen
UnaryOperator<T> T T apply 类型T上的一元操作符 compose,andThen,identity
BinaryOperator<T> T,T T apply 类型T上的二元操作符 andThen,maxBy,minBy
Predicate<T> T boolean test 布尔值函数 and,or,negate,isEqual
BiPredicate<T> T,U boolean test 有两个参数的布尔值函数 and,or,negate

 

 

函数式接口 参数类型 返回类型 抽象方法名
BooleanSupplier none boolean getAsBoolean
PSupplier none p getAsP
PConsumer P void accept
ObjPConsumer T,P void accept
PFunction<T> P T apply
PToQFunction P Q applyAsQ
ToPFunction<T> T P applyAsP
ToPBiFunction<T,U> T,U P applyAsP
PUnaryOperator P P applyAsP
PBinaryOperator P,P P applyAsP
PPredicate P boolean test

 

import java.util.function.IntConsumer;

public class Test {
    public static void main(String[] args){
        LambdaTest.test();
    }


}

class LambdaTest{

    public static void test(){
//        LambdaTest.repeat(10,()-> System.out.println("Hello, World!"));
        LambdaTest.repeat(10,i-> System.out.println("Hello, World! "+i));
    }

    public static void repeat(int n, Runnable action){
        for (int i = 0; i < n; i++) {
            action.run();
        }
    }

    public static void repeat(int n, IntConsumer action){
        for (int i = 0; i < n; i++) {
            action.accept(i);
        }
    }
}

 

以上是关于Java Lambda的主要内容,如果未能解决你的问题,请参考以下文章

Android开发太难了:Java Lambda ≠ Android Lambda (上)

Android开发太难了:Java Lambda ≠ Android Lambda (上)

JAVA由一个将JSONArray转成Map的需求引发的lambda语法的学习

Java -- 每日一问:有人说“Lambda能让Java程序慢30倍”,你怎么看?

Java 8 新特性总结

函数式编程