各位小夥伴們大家好,在之前的文章中小編介紹了Java之使用Lambda表達式,定義一個無參數無返回值的方法,這次小編要介紹的是使用Lambda表達式,定義一個有參數,有返回值的方法,其實和定義無參數,無返回值的方法差不多。
代碼如下:
//定義一個Person類
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name,int age) {
this.name=name;
this.age=age;
}
//使用toString方法,方便查看結果
public String toString() {
return"Person{"+
"name='"+name+'\''+
",age="+age+
'}';
}
//get、set方法
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;
}
}
main方法,沒有使用Lambda方法
import java.util.Arrays;
import java.util.Comparator;
public class Demo01Arrys {
public static void main(String args[]) {
//使用數組存儲多個Person對象
Person[] arr= {
new Person("小紅",11),
new Person("小白",10),
new Person("小藍",12)
};
//對數組中的Person對象使用Arrays的sort方法通過年齡進行升序排序
/* Arrays.sort(arr,new Comparator<Person>() {
public int compare(Person o1,Person o2) {
return o1.getAge()-o2.getAge();
}
});*/
//使用Lambda表達式,簡化匿名內部類
Arrays.sort(arr,(Person o1,Person o2)->{
return o1.getAge()-o2.getAge();
});
//遍歷數組
for(Person p:arr) {
System.out.println(p);
}
}
}
使用匿名內部類和使用Lambda表達式兩者相對比,不難發現,使用Lambda表達式,直接調用Arrays中的sort方法,對年齡進行升序排序,然後return返回參數,更簡單。其實Lambda表達式還可以簡化,小編在接下來的文章中會介紹。關於使用Lambda表達式定義一個有參數,有返回值的方法,小編就先說到這裡,希望這篇文章可以幫助大家,也歡迎各位小夥伴補充和糾錯。
圖片來自網絡,如有侵權,請聯繫作者刪除