注:文章完全是博主从尚硅谷学习总结而来!!!
Lambda表达式
Lambda本质是作为接口的实例
六种使用情况:
1.无参,无返回值
public void test01(){
//基本操作
Runnable r1 = new Runnable() {
@Override
public void run() {
System.out.println("I love code");
}
};
r1.run();
//Lambda表达式
Runnable r2 =() -> System.out.println("I love Lambda");
r2.run();
}
2.需要传入参数,无返回值
public void test02(){
//基本实现
Consumer<String> con = new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
};
con.accept("谎言与誓言");
//Lambda
Consumer<String> con2 =(String s1) -> {
System.out.println(s1);
};
con2.accept("窝嫩叠");
}
3.数据类型可以省略,因为可由编译器推断得出,称为“类型推断“
public void test03(){
//Lambda
Consumer<String> con2 =(s1) -> {
System.out.println(s1);
};
con2.accept("窝嫩叠");
}
4.Lambda若只需要一一个参数时,参数的小括号可以省略.
public void test04(){
//Lambda
Consumer<String> con2 = s1 -> {
System.out.println(s1);
};
con2.accept("窝嫩叠");
}
5.Lambda 需要两个或以上的参数,多条执行语句,并且可以有返回值
public void test05(){
//普通使用
Comparator<Integer> com1 = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
System.out.println(o1);
System.out.println(o2);
return Integer.compare(o1,o2);
}
};
System.out.println(com1.compare(3,4));
System.out.println("**************************");
//Lambda表达式
Comparator<Integer> com2 =(o1,o2) -> {
System.out.println(o1);
System.out.println(o2);
return Integer.compare(o1,o2);
};
System.out.println(com2.compare(9,2));
}
6.当Lambda体只有一条语句时,return与大括号若有,都可以省略
public void test06(){
Comparator<Integer> com2 =(o1,o2) -> Integer.compare(o1,o2);
System.out.println(com2.compare(9,2));
}