思路分析:
// 1.新建一个数组,将每个对象的age属性值都拷贝到新建的数组中
// 2.对该数组(age的值)进行排序(从大到小)
// 3.将当前排序后的数组中的值,依次和对象中的每个对象age属性值进行配对
// 如果匹配到,则打印该对象的信息
排序前
排序后(从大到小)
思路分析:
// 1.新建一个数组,将每个对象的age属性值都拷贝到新建的数组中
// 2.对该数组(age的值)进行排序(从大到小)
// 3.将当前排序后的数组中的值,依次和对象中的每个对象age属性值进行配对
// 如果匹配到,则打印该对象的信息
package com.hspedu.homework.homework01_;
public class Person {
// 根据age的属性,从大到小,打印各自对象的信息
private String name;
private int age;
private String job;
public String printInfo() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", job='" + job + '\'' +
'}';
}
public Person(String name, int age, String job) {
this.name = name;
this.age = age;
this.job = job;
}
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 String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
// 1.新建一个数组,将每个对象的age属性值都拷贝到数组中
// 2.对该数组进行排序(从大到小)
// 3.将当前排序后的数组中的值(从大到小)依次和对象中的每个age属性进行配对
// 如果匹配到,则优先打印该对象的信息
public void objSort(Person... person) {
// 1.新建一个数组,将每个对象的age属性值都拷贝到数组中
int[] arr = new int[person.length];
for (int i = 0; i < arr.length; i++) {
arr[i] = person[i].age;
}
// 2.对该数组进行排序(从大到小)冒泡排序
for (int i = 0; i < arr.length-1; i++) {
int tmp = 0;
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j + 1] > arr[j]) {
tmp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = tmp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i] + "\t");
}
// 3.将当前排序后的数组中的值(从大到小)依次和对象中的每个age属性进行配对
// 如果匹配到,则优先打印该对象的信息
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < person.length; j++) {
if (arr[i] == person[j].age) {
// 显示当前对象的信息
System.out.println(person[j].printInfo());
// 匹配完成后,就不在往后匹配了
break;
}
}
}
}
}