lambda 表达式
- JDK8之后推出的一个特性
- lambda可以用更简短的方式创建匿名内部类。该语法使得我们可以以“函数式编程”
- lambda
创建匿名内部类时
实现的接口必须只有一个抽象方法
, 否则不可以使用
语法:
(参数列表)- >{
方法体
}
创建匿名内部类
- 必须只有一个抽象方法
public class LambdaDemo1 {
public static void main(String[] args) {
//普通匿名内部类的创建
Runnable r1 = new Runnable(){
public void run(){
System.out.println("hello");
}
};
//lambda创建匿名内部类
Runnable r2 = ()->{
System.out.println("hello");//必须只有一个抽象方法
};
//如果里面只有一句可以写成
Runnable r3 = ()-> System.out.println("hello");//必须只有一个抽象方法
}
}
方法含有参数时使用lambda
public class LambdaDemo2 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("小徐亢");
list.add("煌");
list.add("啸天");
System.out.println(list);
//普通自定义排序方法
Comparator<String> c = new Comparator<String>(){
public int compare(String o1, String o2) {
return o1.length()-o2.length();
}
};
//lambda表达式的方法
Comparator<String> c1 = (o1,o2)->{
return o1.length()-o2.length();
};
//如果里面只有一句可以写成
Comparator<String> c2 = (o1,o2)->
o1.length()-o2.length();//有返回值,不能写return
}
}