一.什么是lambda表达式?

lambda表达式就是一个代码块,可以传入变量和放入相应的代码。

二.基本格式

 (参数 ) - >{  

                   代码

                   }

实例:

/**
* 完成人生中第一个lambda表达式完成
*/
Comparator<String> comp=(str1,str2)->{
if(str1.length()>str2.length()) {
return 1;
}else if(str1.length()==str2.length()){
return 0;
}else {
return -1;
}
};

如果没有参数   (  )   也必须保留

如果你的参数类型可以被推断出来你可以忽略其类型,如果其参数可以被推断出来,可以省略小括号。

三.函数式接口

当一个接口只需要实现一个抽象方法时,我们可以提供一个lambda表达式,这一种接口就是函数式接口。

比如上面的例子

/**
* 完成人生中第一个lambda表达式完成
*/
Comparator<String> comp=(str1,str2)->{
if(str1.length()>str2.length()) {
return 1;
}else if(str1.length()==str2.length()){
return 0;
}else {
return -1;
}
};

Comparator接口只需要实现一个方法compare即可,那么我们就可以提供一个lambda表达式来实现。

还有这样的例子:

Integer[] arr = { 1, 2, 5, 4, 63, 59, 25, 45, 85, 12, 0, 122, };
Arrays.sort(arr, (o1, o2) -> {
return o1 - o2;
});

Java匿名内部类的继承者、终结者————lambda表达式的更多相关文章

  1. Java :一文掌握 Lambda 表达式

    本文将介绍 Java 8 新增的 Lambda 表达式,包括 Lambda 表达式的常见用法以及方法引用的用法,并对 Lambda 表达式的原理进行分析,最后对 Lambda 表达式的优缺点进行一个总 ...

  2. Java 终于在 Java 8 中引入了 Lambda 表达式。也称之为闭包或者匿名函数。

    本文首发于 blog.zhaochunqi.com 转载请注明 blog.zhaochunqi.com 根据JSR 335, Java 终于在 Java 8 中引入了 Lambda 表达式.也称之为闭 ...

  3. Java自学第9期——Lambda表达式

    1.入门 使用场景:如果创建函数式接口(该接口的抽象方法只能有一个)的实例时,使用Lambda表达式更加简洁方便. 2.格式: (形参列表) -> { 代码块 } 3.简化 只有一个参数时,可以 ...

  4. Java 8新特性-3 Lambda 表达式

    在 Java 8 之前,匿名内部类,监听器和事件处理器的使用都显得很冗长,代码可读性很差. 在Java 8 之前使用匿名内部类: 例如 interface ITestPrint{ public voi ...

  5. Java编程的逻辑 (91) - Lambda表达式

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  6. Java之线程池和Lambda表达式

    线程池和lambda表达式 学习线程池和lambda表达式的理解 补充一个知识点(单例设计模式) 在多线程中,我们只需要一个任务类,为了防止创建多个任务类,这个时候就需要用到单例模式,单例模式有两种设 ...

  7. Java 常用的几个lambda表达式

    Lambda表达式是Java 8一个非常重要的新特性.它像方法一样,利用很简单的语法来定义参数列表和方法体.目前Lambda表达式已经成为高级编程语言的标配,像Python,Swift,C#等都已经支 ...

  8. Java 关于函数式接口与Lambda表达式之间的关系

    java是一种面向对象的语言,java中的一切都是对象,即数组,每个类创建的实例也是对象.在java中定义的函数或方法不可能完全独立,也不能将方法函数作为参数或返回值给实例. 在java7及以前,我们 ...

  9. java 8 学习二(Lambda表达式)

    粗略的概括:lambda表达式主要用来实现“函数接口”中“唯一”的抽象方法用的. 他的特殊版有 方法引用,构造函数引用,用对应的接口实例接收即可. 可以把Lambda表达式理解为简洁地表示可传递的匿名 ...

随机推荐

  1. F - Proud Merchants

    Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and powerfu ...

  2. android project

  3. python heapq模块使用

    Python内置的heapq模块 Python3.4版本中heapq包含了几个有用的方法: heapq.heappush(heap,item):将item,推入heap >>> it ...

  4. Qt 设置窗口居中显示和窗体大小

    设置窗口居中显示 方法一:在窗口(QWidget类及派生类)的构造函数中添加如下代码: #include <QDesktopWidget> //....... QDesktopWidget ...

  5. 把旧系统迁移到.Net Core 2.0 日记(9) -- T4 Template

    想着用T4 Template 自动生成代码,省了功夫. 发现T4 Template 挺笨的. 我开始这样写是会报错的  <#  var modualName = "CRM"  ...

  6. jsp 内置对象(五)

    1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必 ...

  7. js string对象方法

    substr(start,length) substring(start,end) 返回子串,原字符串不改变.

  8. python 内置函数源码查看

    如果是用python 实现的模块可以直接在IDE里面追踪到源码 也可以使用help内置函数,例如: help(os) 如果是c 语言实现的模块,则不能直接在IDE里面查看,如果直接在IDE里面查看,会 ...

  9. python-第一类对象,闭包,迭代器

    # def fn(): # print("我叫fn") # fn() # print(fn) # <function fn at 0x0000000001D12E18> ...

  10. Python pycharm 引入需要使用的包

    第一步 第二步 第三步