package chapter3;
public class ObjectSort {
/**
* @对象排序,对Person对象的LastName进行排序。
*/
public static void main(String[] args) {
int maxSize = 100;
ArrayInOb arr = new ArrayInOb(maxSize);
arr.insert("Evans", "Patty", 24);
arr.insert("s", "d", 10);
arr.insert("s", "l", 10);
arr.insert("s", "p", 10);
arr.insert("y", "t", 10);
arr.insert("h", "s", 10);
arr.insert("s", "h", 10);
arr.insert("v", "j", 10);
arr.insert("v", "m", 10);
arr.insert("c", "l", 10);
System.out.println("排序前:");
arr.display();
arr.insertSort();
System.out.println("排序后:");
arr.display();
}
}
class Person{
private String lastName;
private String firstName;
private int age;
public Person(String last,String first,int a){
this.lastName = last;
this.firstName = first;
this.age = a;
}
public void displayPerson(){
System.out.print("LastName:"+lastName);
System.out.print(", FirstName:"+firstName);
System.out.println(", Age:"+age);
}
public String getLast(){
return lastName;
}
public String getFirst(){
return firstName;
}
public int getAge(){
return age;
}
}
class ArrayInOb{
private Person[] a;
private int nElems;
public ArrayInOb(int max){
a = new Person[max];
nElems = 0;
}
public void insert(String last, String first,int age){
a[nElems] = new Person(last,first,age);
nElems++;
}
public void display(){
for(int i=0;i<nElems;i++){
a[i].displayPerson();
}
}
public void insertSort(){
int in,out;
for(out = 1;out<nElems;out++){
Person temp = a[out];
in = out;
while(in>0 && temp.getLast().compareTo(a[in-1].getLast())<0){
a[in] = a[in-1];
in--;
}
a[in] = temp;
}
}
}