Lambda表达式格式
(参数列表)->{方法体;return 返回值}
(参数列表)相当于方法的参数,如果没有参数,那么只写()即可
->是固定用法,代码用前面括号中的参数去去做什么事
{}大括号先写计算过程,如果有返回值则return,如果没有返回值return可以省略
省略格式
参数类型可以省略
如果参数只有一个,那么小括号可以省略
如果大括号中只有一句代码,则大括号、return语句和分号可以省去。
什么时候能使用lambda表达式?
替换有且只有一个抽象方法的接口即函数式接口。
使用实例1:
Integer[] nums={1,3,5,4,8,5,3,1};
Arrays.sort(nums, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1>o2?0:1;
}
});
Arrays.sort(nums,(o1,o2)->{return o1>o2?0:1;});
Arrays.sort(nums,(o1,o2)->o1>o2?0:1);
使用实例2
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("test");
}
});
new Thread(()->System.out.println("test"));