Java8 函数式编程接口

Java 函数式接口其中有一个单一的功能,以显示出这些接口。

接口函数名说明
BiConsumer<T,U>表示接收两个输入参数和不返回结果的操作。
BiFunction<T,U,R>表示接受两个参数,并产生一个结果的函数。
BinaryOperator表示在相同类型的两个操作数的操作,生产相同类型的操作数的结果。
BiPredicate<T,U>代表两个参数谓词(布尔值函数)。
BooleanSupplier代表布尔值结果的提供者。
Consumer表示接受一个输入参数和不返回结果的操作。
DoubleBinaryOperator代表在两个double值操作数的运算,并产生一个double值结果。
DoubleConsumer表示接受一个double值参数,不返回结果的操作。
DoubleFunction表示接受double值参数,并产生一个结果的函数。
DoublePredicate代表一个double值参数谓词(布尔值函数)。
DoubleSupplier表示表示接受double值参数,并产生一个结果的函数。值结果的提供者。
DoubleToIntFunction表示接受一个double值参数,不返回结果的操作。
DoubleFunction表示接受double值参数,并产生一个结果的函数。
DoublePredicate代表一个double值参数谓词(布尔值函数)。
DoubleSupplierDoubleToIntFunction
DoubleToIntFunction表示接受double值参数,并产生一个int值结果的函数。
DoubleToLongFunction表示上产生一个double值结果的单个double值操作数的操作。
Function<T,R>代表接受一个double值参数,并产生一个long值结果的函数。
DoubleUnaryOperator表示上产生一个double值结果的单个double值操作数的操作。
Function<T,R>表示接受一个参数,并产生一个结果的函数。
IntConsumer表示接受单个int值的参数并没有返回结果的操作。
IntFunction表示接受一个int值参数,并产生一个结果的函数。
IntPredicate表示一个整数值参数谓词(布尔值函数)。
IntSupplier代表整型值的结果的提供者。
IntToLongFunction表示接受一个int值参数,并产生一个long值结果的函数。
IntUnaryOperator表示产生一个int值结果的单个int值操作数的运算。
LongBinaryOperator表示在两个long值操作数的操作,并产生一个ObjLongConsumer值结果。
LongFunction表示接受long值参数,并产生一个结果的函数。
LongPredicate代表一个long值参数谓词(布尔值函数)。
LongSupplier表示long值结果的提供者。
LongToDoubleFunction表示接受double参数,并产生一个double值结果的函数。
LongToIntFunction表示接受long值参数,并产生一个int值结果的函数。
LongUnaryOperator表示上产生一个long值结果单一的long值操作数的操作。
ObjDoubleConsumer表示接受对象值和double值参数,并且没有返回结果的操作。
ObjIntConsumer表示接受对象值和整型值参数,并返回没有结果的操作。
ObjLongConsumer表示接受对象值和整型值参数,并返回没有结果的操作。
ObjLongConsumer表示接受对象值和double值参数,并且没有返回结果的操作。
ObjIntConsumer表示接受对象值和整型值参数,并返回没有结果的操作。
ObjLongConsumer表示接受对象的值和long值的说法,并没有返回结果的操作。
Predicate代表一个参数谓词(布尔值函数)。
Supplier表示一个提供者的结果。
ToDoubleBiFunction<T,U>表示接受两个参数,并产生一个double值结果的功能。
ToDoubleFunction代表一个产生一个double值结果的功能。
ToIntBiFunction<T,U>表示接受两个参数,并产生一个int值结果的函数。
ToIntFunction代表产生一个int值结果的功能。
ToLongBiFunction<T,U>表示接受两个参数,并产生long值结果的功能。
ToLongFunction代表一个产生long值结果的功能。
UnaryOperator表示上产生相同类型的操作数的结果的单个操作数的操作。

总体来说这些接口一共分为五类

Function

Function接口定义:
接受一个一个泛型T,返回一个泛型R

 @FunctionalInterface    
    public interface Function<T, R>

所定义的抽象方法,(lambda表达式只能定义一个抽象方法);

R apply(T t); 

使用案例

public static void main(String[] args) {
		DoubleFunction<Integer> doubleToInt = a -> (int)a;
		
		System.out.println(doubleToInt.apply(8.8));
	}

输出结果

8

Consumer

接口的定义
接受一个泛型T,不返回任何东西

@FunctionalInterface
    public interface Consumer<T>

唯一的lambda表达式抽象方法

void accept(T t);

案例

		DoubleConsumer square = a -> System.out.println(Math.sqrt(a));
		
		DoubleConsumer pow = a -> System.out.println(Math.pow(a, a));
		
		square.accept(2.5);
		pow.accept(85.5);
	}

输出结果

1.5811388300841898
1.5244135810422116E165

Predicate

接口的定义
输入一个泛型,返回一个Boolean型

 @FunctionalInterface    
    public interface Predicate<T>

唯一的lambda抽象方法

boolean test(T t);

案例

public static void main(String[] args) {
		DoublePredicate isDouble = a -> a > 2.0; 
		System.out.println(isDouble.test(1.9));
	}

输出结果

false

Supplier

接口定义
不接受任何参数,返回一个泛型T

public interface Supplier<T> {

        /**
         * Gets a result.
         *
         * @return a result
         */
        T get();
    }

案例

		DoubleSupplier addition = () -> {
			return 2.5;
		};
		
		DoubleSupplier don = () -> {
			return 54.6;
		};
		
		System.out.println(addition.getAsDouble());
		
		System.out.println(don.getAsDouble());
		
	}

输出结果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值