java的lambda表达式_Java中Lambda表达式的5种不同语法

1.标准语法

考虑以下示例:

String[] arr = {"program", "creek", "is", "a", "java", "site"};

Arrays.sort(arr, (String m, String n) -> Integer.compare(m.length(), n.length()));

System.out.println(Arrays.toString(arr));

lambda表达式的标准语法包括以下内容:

1. 用括号括起来的形式参数的逗号分隔列表。在这种情况下(String m, String n)

2. 箭头标记 ->

3. 主体,由单个表达式或语句块组成。在这种情况下,它是一个单一表达式-Integer.compare(m.length(), n.length())

Output:

[a, is, java, site, creek, program]

2.可以推断参数类型

如果可以从上下文中推断出参数的参数类型,则可以省略该类型。

在上面的代码中,可以将m和n的类型推断为String,因此可以省略该类型。这使代码更整洁,更像真正的lambda表达式。

String[] arr = { "program", "creek", "is", "a", "java", "site" };Arrays.sort(arr, (m, n) -> Integer.compare(m.length(), n.length()));System.out.println(Arrays.toString(arr));

3. Lambda表达式中的多行代码

如果代码不能一行编写,则可以将其括在{}中。现在,该代码应明确包含return语句。

String[] arr = { "program", "creek", "is", "a", "java", "site" };Arrays.sort(arr, (String m, String n) -> {

if (m.length() > n.length())

return -1;

else

return 0;});System.out.println(Arrays.toString(arr));

Output:

[program, creek, java, site, is, a]

4.推断类型的单参数

当可以推断类型时,对于单参数lambda表达式可以省略括号。

String[] arr = { "program", "creek", "is", "a", "java", "site" };

Stream stream = Stream.of(arr);

stream.forEach(x -> System.out.println(x));

Output:

a

is

java

site

creek

program

5.方法参考

通过使用方法引用,前面的代码也可以编写如下:

Stream stream = Stream.of(arr);

stream.forEach(System.out::println);

6.无参数

当没有参数用于函数时,我们也可以编写lambda表达式。例如,它看起来可能如下所示:

() -> { for(int i = 0 ; i < 10 ; i ++ ) doSomthing (); }

最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值