2022更文挑战12-java中的lambda表达式

705 阅读2分钟

「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」。

java中的lambda表达式

前文

本文主要内容为对于Java中lambda表达式应用的一些个人理解。由于包含很多个人理解的成分,所以难免有错误或不准确之处,还请见谅。

lambda表达式

所谓lambda表达式,本意是指匿名函数,没有函数名称只有函数体及参数的函数。具体到java中来说,也就是由参数以及表达式的主题构成,可以认为是函数的一种简化方式,而这也是java8中更新的重要特性之一。

看一下lambdad表达式的基本语法:

(parameters) -> expression 或者

(parameters) ->{ statements; }

简单来说,就是对于一个常规的函数,可以进行简化操作为去掉函数本来的命名,将原来函数的括号内参数直接继承,与常规用法保持一致。如果参数只有一个,则括号和参数类型都可以省略。同时使用箭头进行参数和表达式的连接。至于表达式,如果表达式的内容只有一行,则可以直接连接在右箭头的右侧。如果表达式为多行,则需要利用大括号进行包裹,括号内与常规的函数一样,使用分号进行语句之间的逻辑分隔。省略大括号时,return与分号需要同时进行省略。

下面来简单看一下实际的应用代码: 使用lambda表达式前:

    List<Integer> list =new ArrayList<>();
    list.sort(new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            return o1 - o2;
        }
    });

使用lambda表达式后:

    List<Integer> list =new ArrayList<>();
    list.sort((o1, o2) -> o1 - o2);

通过上面的对比可以轻易的看出,当使用lambda表达式时,会对原始代码进行显著的简化。整段代码由七行简化为两行。刚好上述的一个示例可以匹配,表达式只有一行的情况。因此实际的代码省略了return、大括号等等,直接在箭头右侧写出上述的表达式即可。

将lambda表达式的写法可以简单的总结一下,写死右箭头,下落小括号及表达式。

后记

  • 千古兴亡多少事?悠悠。不尽长江滚滚流。