Lambda表达式是用于重写接口中的方法,一个完整的Lambda表达式应该包括 参数、箭头、方法体。
无参数无返回值:
new Thread(()->{
System.out.println("hello world!");
}).start();
有参数有返回值:
public class TestGrammer {
public static void main(String[] args) {
Person[] arr = { new Person(1, "name") ,new Person(2, "name"),new Person(3, "name")};
for (Person p : arr){
System.out.println(p.toString());
}
Arrays.sort(arr,(Person one,Person two) -> {//前减去后为升序,后减去前为降序
return two.age - one.age;
});
for (Person p : arr){
System.out.println(p.toString());
}
}
}
class Person{
public int age;
public String name;
public Person(int age, String name) {
super();
this.age = age;
this.name = name;
}
public String toString() {
return "Person [age=" + age + ", name=" + name + "]";
}
}
- 如果接口实现方法只有一条语句,则可以使用省略写法
无参无返回省略写法:
new Thread(()->
System.out.println("hello world!")
).start();
有参数有返回值省略写法:
Arrays.sort(arr,(one,two) -> //Person正常情况下也可以省略
two.age - one.age//连return都不要啦
);