lambda格式
由三部分组成:
1、一些参数
2、一个箭头
3、一段代码
(参数列表) -> {一些重写方法的代码}
说明:
():接口中抽象方法的参数列表,有参就写参,每参就空着
->:箭头表示把参数传给代码
{}:重写接口中的抽象方法的方法体
public class Person {
private String name;
private int age;
public Person() {
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
import java.util.Arrays;
public class TestPerson {
public static void main(String[] args) {
Person[] arr = {
new Person("亚索",18),
new Person("盖伦",30),
new Person("剑圣",100),
};
// Arrays.sort(arr, new Comparator<Person>() {
// @Override
// public int compare(Person person1, Person person2) {
// return person1.getAge() - person2.getAge() ;
// }
// });
Arrays.sort(arr,(person1,person2) -> {
return person2.getAge() - person1.getAge();
});
for (Person person:arr) {
System.out.println(person);
}
}
}
lambda表达式是可推导,可省略(凡是根据上下文推导出来的内容,都可以省略)
可以省略的内容:
1、(参数列表):括号中参数列表的数据类型,可以省略不写
2、(参数列表):括号中的参数如果只有一个,那么类型和()都可以省略
3、没有参数括号不能省略
4、{代码} :如果{}中的代码只有一行,无聊是否有返回值,都可以省略({},return,分号)注意要省略一起省略。