java8新特性之Lambda 表达式

因为编程习惯不想改变,很多语法上就没有用Lambda表达式,都是用传统的编码风格,但是最近读同事的代码发现,lambad这种函数式编程貌似用的很普遍了,所以写一篇博文来记录一下。

1、Lambda 表达式

这是java8中的一个重要新特性,推崇函数式编程,可以大大减少代码的书写量。可以将函数作为参数传递。

基本语法:

// 当代码语句只有1句时,可以省略大括号。并且如何需要返回时,会自动返回
(形参)->{ 代码语句 }

1.1 集合遍历

在传统方式上,我们要进行遍历的时候,都会用foreach循环。java8之前的写法


   List<String> list = Arrays.asList("A","B","C","D");
        for (String s : list) {
            System.out.println(s);
        }

但是有了lambda表达式之后 java8的写法


List<String> list = Arrays.asList("A","B","C","D");[添加链接描述](https://blog.csdn.net/weixin_43732955/article/details/95309570)
list.forEach(s-> System.out.println(s));

或者 在执行输出的时候 我们还能下面这个语法。双冒号的写法是不是很像函数的感觉。使用这种写法,连形参都能省略,
使用语法为


类名::方法名


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

1.2 匿名内部类

关于什么是匿名类可以参照匿名内部类及分类,如我们在进行集合元素排序比较的时候,会需要实例化一个比较器Comparator。代码如下

        list.sort(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });

上面的写法 就是在java8 之前我们创建匿名内部类的方式,但是有了lambad表达式之后,代码就变的简单起来。

list.sort((o1,o2)->{return o1.compareTo(o2);});
 
// 因为我们上面语法规则中提到了 当只有一行代码的时候,大括号可以省略
list.sort((o1,o2)->o1.compareTo(o2));

构造比较器 还能使用Comparator.comparing() 这个方法

小结

本文就介绍了 lambda表达式的几种基本用法。java8新特性中,stream流进行数据处理这个功能也非常强大,然后再结合lambda使用,在处理逻辑集合数据会变得相当方便。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值