定义一个Person类
public 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("Last Name:"+lastName+" First Name:"+firstName+" Age:"+age);
}
public String getLast(){
return lastName;
}
public int getAge(){
return age;
}
}
再定义一个插入排序的类,里面有insert等方法
public 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();
}
System.out.println();
}
public void insertionSort(){
int in,out;
for(out=1;out<nElems;out++){
Person temp=a[out];
in=out;
while(in>0&&a[in-1].getLast().compareTo(temp.getLast())>0){
a[in]=a[in-1];
in--;
}
a[in]=temp;
}
}
public void insertionSortAge(){
int in,out;
for(out=1;out<nElems;out++){
Person temp=a[out];
in=out;
while(in>0&&(a[in-1].getAge()>temp.getAge())){
a[in]=a[in-1];
in--;
}
a[in]=temp;
}
}
}
public class ObjectSortApp {
public static void main(String[] args){
int maxSize=100;
ArrayInOb arr;
arr=new ArrayInOb(maxSize);
arr.insert("a", "b",24);
arr.insert("c", "d",59);
arr.insert("e", "f",20);
arr.insert("g", "h",30);
arr.insert("a", "j",40);
arr.display();
arr.insertionSort();
arr.display();
arr.insertionSortAge();
arr.display();
}
}