DESKTOP-0FT47VC_20200903-罗贤丞
问题
使用匿名类实现比较器接口
解决
package anonymous;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Random;
public class CustomerTest {
public static void main(String[] args) {
final Random random = new Random();
final Customer[] customers = new Customer[5];
// 使用循环对 customers 数组进行初始化
for (int i = 0; i < customers.length; i++) {
// 随机产生 年份、月份、日期,并将据此创建 LocalDate 对象中
int y = random.nextInt(2019);
int m = random.nextInt(11);
int d = random.nextInt(27);
LocalDate localDate = LocalDate.of(y + 1, m + 1, d + 1);
// 在这里创建 Customer 对象
customers[i] = new Customer(m, "yiyi", '男', localDate);
}
// 使用循环输出排序前的 customers
for (int i = 0; i < customers.length; i++) {
System.out.println(customers[i]);
}
// 使用 【匿名类】实现 比较器接口 ,以便于按照 Customer 的 birthdate 升序排序
Comparator<Customer> comparator = new Comparator<Customer>() {
@Override
public int compare(Customer a, Customer b) {
if (a.getBirthdate().getYear() < b.getBirthdate().getYear()) {
return -1;
} else if (a.getBirthdate().getYear() == b.getBirthdate().getYear()) {
return 0;
} else {
return 1;
}
}
};
Arrays.sort(customers, comparator); // 用比较器排序
// 使用循环输出排序后的日期
for (int j = 0; j < customers.length; j++) {
System.out.println(customers[j]);
}
}
}
吐槽
今天学的还行吧,继续加油努力!!!
点赞