Java8 Lambda表达式不同表示形式

在更新的java8中,最引人注目的是Lambda表达式,这里就简单介绍一下Lambda表达式的几种表现形式

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));

这里主要由三部分组成:
1)形参m和n,使用,分隔
2)->
3)由一个表达式或语句块组成的一个主体

2.参数类型可推断形式

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表达式

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<String> stream = Stream.of(arr);
stream.forEach(x -> System.out.println(x));

这里借助了Java8的流编程。当可以推断类型时,可以省略lambda表达式的参数括号,直接使用单参数。

5.方法引用

Stream<String> stream = Stream.of(arr);
stream.forEach(System.out::println);

4中的表达式还可以写成这种方法引用的形式

6.无参的Lambda表达式

() -> {for(int i=0; i<10; i++) doSomthing();}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值