Java的lambda表达式使用方式,lambda表达式到底为了做什么

感觉从狭义的使用目的来说,lambda表达式就是为了简化某些匿名内部类,当然不是所有的匿名内部类都能被简写。也就是你想要某些返回值作为参数不用去显示的写调用方法或者传参,具体来看看下面的例子

// Java7及以前假设想要排序List的方式,需要你调用Collections接口并且传一个比较器的
ArrayList<String> list = new ArrayList<>(Arrays.asList("I", "love", "you", "too"));
Collections.sort(list, new Comparator<String>(){
    @Override
    public int compare(String str1, String str2){
        return str1.length()-str2.length();
    }
});
// 尽管匿名内部类不太用去外面定义一个class xxxComparator,有点简化了,但还是不够简单
// lambda表达式对此进一步进行了简化,同时Java8还支持了直接List.sort()
ArrayList<String> list = new ArrayList<>(Arrays.asList("I", "love", "you", "too"));
list.sort((str1, str2) -> str1.length()-str2.length());

具体的语法实际上就是->前面是传参,假设无参就是(),只有一个参数可以省略括号,多个参数就(a, b, c)。->后面是执行代码。

进一步的写法还可以用::代替一些->,这是Java 8中的Lambda表达式写法之一,借鉴了一下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值