各位小伙伴们大家好,在之前的文章中小编介绍了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() {
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表达式定义一个有参数,有返回值的方法,小编就先说到这里,希望这篇文章可以帮助大家,也欢迎各位小伙伴补充和纠错。
图片来自网络,如有侵权,请联系作者删除