lambda定义lambda语法结构
语法结构 lambda使用
1. 无入参,无返回值2. 有入参,无返回值3. 多个入参,且可以返回值4. 数据类型可推断,省略数据类型5. 单一入参,省略参数列表括号()6. lambda方法体仅一条语句,省略return及大括号{} 附
lambda定义lambda是一个匿名函数(没有函数名的函数)。
在其他OOF语言中,lambda是一段匿名代码片段,在Java中结合函数式接口的含义,可以理解lambda是一类(对象,OOP思想)可以传递的匿名对象(接口实例),一段可以传递的功能代码。
形参列表 -> lambda方法体
举例:(a,b) -> Integer.compare(a,b)
形参列表:(a,b) 抽象(接口)方法的形参列表
操作符: : -> 箭头操作符
方法体: Integer.compare(a,b) 抽象方法实现(或接口方法实现)
lambda 在一些情况下可以对参数或者方法体进行省略。
1. 无入参,无返回值 @Test
public void test1(){
Runnable runnable = ()->{
System.out.println(" 我是run方法的实现 ");
};
}
2. 有入参,无返回值
@Test
public void test2(){
Consumer consumer = (String str) -> {
System.out.println(" 传入参数是:" + str);
};
}
多个入参以“,"隔开,如: (String s1,Integer s2)-> {}
3. 多个入参,且可以返回值 @Test
public void test5(){
Comparator consumer = (String s1,String s2) -> {
System.out.println(" 传入参数是:" + s1 + "->"+ s2);
return s1.compareTo(s2);
};
}
4. 数据类型可推断,省略数据类型
//[有入参,无返回值]例子可以简写成:
@Test
public void test2(){
Consumer consumer = (str) -> {
System.out.println(" 传入参数是:" + str);
};
}
类型推断示例:
HashMap5. 单一入参,省略参数列表括号()map = new HashMap<>(); String[] data = {"",""};
// 继续改造上面的例子
@Test
public void test2(){
Consumer consumer = tr -> {
System.out.println(" 传入参数是:" + str);
};
}
6. lambda方法体仅一条语句,省略return及大括号{}
//[多个入参,且可以返回值] 例子改造
@Test
public void test5(){
Comparator consumer = (s1,s2) -> s1.compareTo(s2);
}
附
lambda使用之函数式接口
lambda语法及使用
java中的引用



