Java8中的常用函数式接口及例子

Java 8中的常用函数式接口 
函数式接口 函数描述符 原始类型特化
 Predicate<T>  T->boolean IntPredicate,LongPredicate, DoublePredicate
 Consumer<T>  T->void  IntConsumer,LongConsumer, DoubleConsumer
 Function<T,R>  T->R  IntFunction,
     IntToDoubleFunction,
     IntToLongFunction,
     LongFunction, 
     LongToDoubleFunction,
     LongToIntFunction,
     DoubleFunction, 
     ToIntFunction, 
     ToDoubleFunction, 
     ToLongFunction
 Supplier<T>  ()->T  BooleanSupplier,IntSupplier, LongSupplier,
     DoubleSupplier
 UnaryOperator<T>  T->T  IntUnaryOperator,
     LongUnaryOperator,
     DoubleUnaryOperator
 BinaryOperator<T>  (T,T)->T  IntBinaryOperator,
     LongBinaryOperator,
     DoubleBinaryOperator
 BiPredicate<L,R>  (L,R)->boolean  
 BiConsumer<T,U>  (T,U)->void  ObjIntConsumer<T>,  
     ObjLongConsumer<T>,
     ObjDoubleConsumer<T>
 BiFunction<T,U,R>  (T,U)->R  ToIntBiFunction<T,U>, 
     ToLongBiFunction<T,U>, 
     ToDoubleBiFunction<T,U>

 

补充:

Lambdas及函数式接口的例子
使用案例 Lambda 的例子 对应的函数式接口
布尔表达式 (List list) -> list.isEmpty()  Predicate<list> 
创建对象 () -> new Apple(10) Supplier<Apple>
消费一个对象 (Apple a) -> System.out.println(a.getWeight()) Consumer<Apple>
从一个对象中 选择/提取 (String s) -> s.length() Function<string, integer="">或 ToIntFunction
合并两个值 (int a, int b) -> a * b IntBinaryOperator
比较两个对象 (Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight()) Comparator或 BiFunction<apple, apple,="" integer=""> 或 ToIntBiFunction<apple, apple="">
posted @ 2019-12-26 10:33  少说点话  阅读(1129)  评论(0编辑  收藏  举报
网站运行: