前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中ambda表达式可以被用于哪些Java内置的函数式接口?

Java中ambda表达式可以被用于哪些Java内置的函数式接口?

作者头像
用户1289394
发布2023-09-11 15:02:35
1470
发布2023-09-11 15:02:35
举报
文章被收录于专栏:Java学习网

Java中Lambda表达式可以被用于很多Java内置的函数式接口。Java 8引入了大量函数式接口,这些接口定义了不同类型的函数,包括消费型函数、生产型函数、谓词等。通过Lambda表达式,我们可以传递实现了这些接口的方法或者行为。下面是一些常见的Java内置函数式接口:

1、Consumer<T>:代表输入参数为T类型,返回值为空的“消费型”函数式接口。Lambda 表达式可以作为该接口的唯一抽象方法的实现。 示例代码:

代码语言:javascript
复制
Consumer<String> consumer = (input) -> System.out.println(input);
consumer.accept("Lambda");

2、Supplier<T>:代表不接受任何输入参数,但需要返回T类型结果的接口。Lambda 表达式可以作为该接口的唯一抽象方法的实现。 示例代码:

代码语言:javascript
复制
Supplier<Integer> integerSupplier = () -> new Random().nextInt();
System.out.println(integerSupplier.get());

3、Function<T, R>:代表输入参数为 T 类型,输出参数为 R 类型的“生产型”函数式接口。Lambda 表达式可以作为该接口的唯一抽象方法的实现。 示例代码:

代码语言:javascript
复制
Function<String, Integer> function = (input) -> input.length();
System.out.println(function.apply("Lambda"));

4、Predicate<T>:代表管理一个输入参数为 T 类型,结果类型为布尔类型的“谓语”(包含任何类型的布尔函数)。Lambda 表达式可以作为该接口的唯一抽象方法的实现。 示例代码:

代码语言:javascript
复制
Predicate<Integer> predicate = (input) -> input > 10;
System.out.println(predicate.test(30));

5、BiFunction<T, U, R>:代表输入参数为 T,U 类型,输出参数为 R 类型的“生产型”函数式接口。Lambda 表达式可以作为该接口的唯一抽象方法的实现。 示例代码:

代码语言:javascript
复制
BiFunction<Integer, Double, String> biFunction = (a, b) -> "结果是:" + (a * b);
System.out.println(biFunction.apply(10, 2.0));

6、BinaryOperator<T>:该 Lambda 表达式使用两个相同的类型数据,将结果转换成与该类型相应的值。比如,加法、减法等操作均属于二元运算交易。该接口继承自 BiFunction 接口。 示例代码:

代码语言:javascript
复制
BinaryOperator<Integer> binaryOperator = (a, b) -> a + b;
System.out.println(binaryOperator.apply(1, 2));

7、UnaryOperator<T>:与前面的 BinaryOperator 相似,不同之处在于它只运算了一个参数并且结果和参数类型相同。 示例代码:

代码语言:javascript
复制
UnaryOperator<Boolean> not = (flag) -> !flag;
System.out.println(not.apply(true));

除此之外还有很多其它函数式接口,例如Runnable(TimeUnit time),Comparator(T i, T j),ToIntFunction(T t),ToDoubleBiFunction(T t, U u)等,不过这些接口使用较为少见。

总之,Java中的Lambda 表达式为程序员提供了一个更加高效、简洁和灵活的代码结构,并且在Java8 才被引入到函数式编程的语法中。通过 Java Lambda 表达式,我们可以以一种优雅、安全并且可维护的方式,设计出各种功能强大的应用程序。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档