Java----Lambda表达式
作者:
Agoni7z
,
2024-04-20 20:43:51
,
所有人可见
,
阅读 26
练习1
package com.itheima.test;
import java.util.Arrays;
import java.util.Comparator;
public class Test1 {
public static void main(String[] args) {
// 1, 创建三个女朋友的对象
GirlFriend gf1 = new GirlFriend("xiaoshishi",18,1.67);
GirlFriend gf2 = new GirlFriend("xiaodandan",19,1.72);
GirlFriend gf3 = new GirlFriend("xiaohuihui",18,1.78);
GirlFriend gf4 = new GirlFriend("abc",18,1.78);
// 定义数组存储女朋友的信息
GirlFriend[] arr = {gf1, gf2, gf3, gf4};
// 利用Arrays中的sort方法进行排序
// lambda表达式写法
Arrays.sort(arr, (GirlFriend o1, GirlFriend o2) -> {
// 按照年龄的大小进行排序,年龄一样,按照身高排序,身高一样的按照姓名的字母排序
double temp = o1.getAge() - o2.getAge();
temp = temp == 0 ? o1.getHeight() - o2.getHeight() : temp;
temp = temp == 0 ? o1.getName().compareTo(o2.getName()) : temp;
if (temp > 0) {
return 1;
} else if (temp < 0) {
return -1;
} else {
return 0;
}
});
/*Arrays.sort(arr, new Comparator<GirlFriend>() {
@Override
public int compare(GirlFriend o1, GirlFriend o2) {
// 按照年龄的大小进行排序,年龄一样,按照身高排序,身高一样的按照姓名的字母排序
double temp = o1.getAge() - o2.getAge();
temp = temp == 0 ? o1.getHeight() - o2.getHeight() : temp;
temp = temp == 0 ? o1.getName().compareTo(o2.getName()) : temp;
if (temp > 0) {
return 1;
} else if (temp < 0) {
return -1;
} else {
return 0;
}
}
});*/
// 4, 展示一下数组中的内容
System.out.println(Arrays.toString(arr));
}
}