什么是 Lambda表达式
Lambda 表达式是一个匿名函数 也可称为闭包 用来表示匿名内部类(函数内部类的函数)
它是推动 Java 8 发布的最重要新特性。
为什么要用 Lambda表达式
在java8之前 java语言 方法调用 无法将函数作为一个参数 也无法声明返回一个函数
对比 javaScript是典型函数式语言
总结: Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)使用 lambda 表达式使代码变的更加简洁紧凑。
引出------->函数式编程
函数式编程--->强调行为
它允许我们将一个函数当作方法的参数(传递函数)---------->(原来传递参数就是具体的数据)
怎么用 Lambda表达式
Lambda基本结构
()->{方法体} //参数类型可省略 上下文可推断出来
(参数类型1 参数1, 参数类型2 参数2) ->{方法体}
也可简化为 参数1 -> {方法体}
1遍历中使用
1 public class TestLambda { 2 3 public static void main(String[] args) { 4 5 List<Integer> list = Arrays.asList(1, 3, 6, 9); 6 7 for (int i = 0; i < list.size(); i++) { 8 System.out.println(list.get(i)); 9 } 10 11 System.out.println("-------传统遍历-------"); 12 for (Integer i : list) { 13 System.out.println(i); 14 } 15 16 System.out.println("使用Lambda表达式遍历"); 17 18 list.forEach(i -> { 19 System.out.println(i); 20 }); 21 22 } 23 24 }
2.线程中使用
1 public class TestLambda2 { 2 3 4 public static void main(String[] args) { 5 6 Runnable runnable = new Runnable() { 7 @Override 8 public void run() { 9 System.out.println("调用run方法"); 10 } 11 }; 12 13 14 Runnable runnable2 = () -> System.out.println("lamdba表达式调用run方法"); 15 16 } 17 18 }