lambda表达式:主要用于匿名内部类、迭代查找、函数的映射方面。
1.用于匿名内部类:
1 // 匿名内部类 2 // 方法一 3 public void print1(int n) { 4 new Thread(new Runnable() { 5 @Override 6 public void run() { 7 System.out.println(n + ": Hold on, Andy!"); 8 } 9 }).start(); 10 ; 11 } 12 13 // 匿名内部类 14 // 方法二,Lambda表达式 15 public void print2(int n) { 16 new Thread(() -> System.out.println(n + ": Hold on, Andy!")).start(); 17 }
1 Lambda lmd=new Lambda(); 2 lmd.print1(1); 3 lmd.print1(2); 4 结果为: 5 1: Hold on, Andy! 6 2: Hold on, Andy!
2.用于迭代查找
1 // 对内部数据进行迭代 2 // 方法一,传统方法 3 public void Iterator1() { 4 5 List<String> list = Arrays.asList("Andy", "John", "Tome"); 6 for (String str : list) { 7 System.out.println(str); 8 } 9 } 10 11 // 方法二 12 // lambda表达式 13 public void Iterator2() { 14 15 List<String> list = Arrays.asList("Andy", "John", "Tome"); 16 list.forEach(t->System.out.println(t)); 17 }
1 lmd.Iterator1(); 2 lmd.Iterator2(); 3 结果为: 4 Andy 5 John 6 Tome 7 Andy 8 John 9 Tome
3.用于函数映射
1 //用lambda实现map表达式 2 public void map() 3 { 4 List<Integer> list=Arrays.asList(1,2,3,4); 5 list.stream().map(x -> x + x).forEach(x -> System.out.println(x)); 6 }
1 lmd.map(); 2 结果为: 3 2 4 4 5 6 6 8