Lambda表达式的目的就是简化代码,用较少的代码实现和一样的功能.本质就是编译器把代码转换为普通代码.
lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(可以是一个表达式或一个代码块)。
例如
(参数)->(表达式)
(参数)->{代码块}
当参数为一个的时候可以不用参数括号 例如 String a->(表达式)
最简约的方式连数据类型都不用写 a->(表达式) 编译器会自动识别.
1.使用lambda表达式进行遍历
String [] arr={"zhangsan","lisi","wangwu","zhaoliu","wdas","sdww","cccs"};
List<String> list=Arrays.asList(arr);
//以前的遍历集合的方法
for(String a:list){
System.out.println(a);
}
//lambda表达式 遍历
list.forEach(p->System.out.println(p));
}
2.lambda表达式进行匿名类操作
List<String> a=new ArrayList<String>();
a.add("aaaa");
a.add("vv");
//传统方式的排序
Collections.sort(a, new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
return o1.length()>o2.length()?0:1;
}
});
System.out.println(a.toString());
}
List<String> a=new ArrayList<String>();
a.add("aaaa");
a.add("vv");
//lambda表达式 从6行代码变成3行代码.
a.sort((p1, p2) -> {
return p1.length() > p2.length() ? 0 : 1;
});
System.out.println(a.toString());
}