Java8中的常用函数式接口及例子
| 函数式接口 | 函数描述符 | 原始类型特化 |
| 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> |
补充:
| 使用案例 | 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=""> |
本博客文章均已测试验证,欢迎评论、交流、点赞。
部分文章来源于网络,如有侵权请联系删除。
转载请注明原文链接:https://www.cnblogs.com/sueyyyy/p/12100732.html

浙公网安备 33010602011771号