美文网首页
Java核心技术 卷I - lambda(第11版)

Java核心技术 卷I - lambda(第11版)

作者: 程序员小白成长记 | 来源:发表于2020-06-21 00:00 被阅读0次

lambda表达式

一、为什么引入一个lambda表达式

lambda表达式是一个可传递的代码块,可以在以后执行一次或多次。
1,如果代码想要完成的计算无法放在一个表达式中就可以像写方法一样,把这些代码放在{}中。
2,即使lambda表达式没有参数,仍然要提供空括号。
3,如果可以推导一个lambda表达式的参数类型,则可以忽略期其类型。
4,无需指定lambda表达式的返回类型。lambda表达式的返回类型总会由上下文推导得出。
5,如果一个lambda表达式只在某些分支返回一个值,而另外一些分支不返回值,这是不合法的。

二、一些lambda的小列子

2.1 定制比较器

public class Test {
    public static void main(String[] args) {
        String[] strings = {"Hello","nihao"};
        // 传统写法
        Arrays.sort(strings, new LengthComparator());
        // lambda写法
        Arrays.sort(strings, (first,second)->first.length() - second.length());
    }
}

class LengthComparator implements Comparator<String> {
    @Override
    public int compare(String first, String second){
        return first.length() - second.length();
    }
}

可以看出(first,second)可以不用指定参数类型,可以通过其前面的参数strings推导出。

三、函数式接口

对于只有一个抽象方法的接口,需要这种接口的对象时,就可以提供一个lambda表达式。这种接口称为函数式接口(functional interface)。

相关文章

  • 双11Java程序员书单推荐

    Java 《Java核心技术卷I》 《Java核心技术卷II》 《Java编程思想》 《Java并发编程实战》 《...

  • 推书:Java核心技术 卷1 基础知识 原书第10版

    推书:Java核心技术 卷1 基础知识 原书第10版 《Java核心技术卷I》虽然该书很厚,有700多页,但知识体...

  • Java核心技术 卷I - lambda(第11版)

    lambda表达式 一、为什么引入一个lambda表达式 lambda表达式是一个可传递的代码块,可以在以后执行一...

  • 2021书单

    2021-01《活着》《如何阅读一本书》2021-11《Java核心技术卷I》《Java核心技术卷II》2021-...

  • Java核心技术 卷I 第10版 笔记

    基于《Java核心技术 卷I 第10版》,边看边写,持续更新 • Java严格区分大小写• 编译时需要提供文件名(...

  • (Java) 查看线程状态

    参考资料 (豆瓣链接)Java核心技术 卷I 基础知识 第10版 英文版 的 14.3 Thread States...

  • Java核心知识

    Java核心语法 作者:springremember 书籍:《Java核心技术卷一》《Java核心技术卷二》 ja...

  • 记录一些书籍

    JAVA 基础 《Java核心技术·卷1:基础知识》《Java核心技术 卷2:高级特性》《Java8 实战》 并发...

  • Java核心技术·卷 I(原书第10版)分享下载

    Java核心技术·卷 I(原书第10版) 内容介绍 Java领域最有影响力和价值的著作之一,由拥有20多年教学与研...

  • Java SE基础部分

    Java核心语法 书籍:《Java核心技术卷一》《Java核心技术卷二》 java包结构:核心包,Java1一同出...

网友评论

      本文标题:Java核心技术 卷I - lambda(第11版)

      本文链接:https://www.haomeiwen.com/subject/fkpnxktx.html