在下面的程序中添加代码,按照Employee的id排序
public class Test
{
public static Employee[] sort(Employee ee[]){
//...............添加代码处
return ee;
}
public static void main(String[] args) {
 Employee ee[]={new Employee(1,100),new Employee(100,25),new Employee(50,123.3)};
sort(ee);
for(int i=0;i<ee.length;i++)
System.out.println(ee[i]);
}
}class Employee 
{
private int id;
private double salary;
public Employee(int id, double salary) {
this.id = id;
this.salary = salary;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}

public String toString() {
// TODO Auto-generated method stub
return String.valueOf(id)+","+String.valueOf(salary);
}
}

解决方案 »

  1.   

    去看看comparator,comparable
    然后看看集合的sort方法
      

  2.   

    从运行结果来看不是排序,sort(Employee ee[])只是一个很普通的方法。
      

  3.   

    LS说的对 Comparator 对对象进行比较排序
      

  4.   

    sort()只是我写的一个方法名,没什么其他的意思,就是对象按照指定的属性排序,我这个是按照id属性从小到大排序,不知道怎么写,各位看看如何写,谢谢
      

  5.   

    实现Comparable接口,重写compareTo方法即可
      

  6.   

    然后就是Arrays.sort(Object[] obArray)
      

  7.   


    public static Employee[] sort(Employee ee[]){ 
    for(int i=0;i<ee.length();i++){
    //冒泡排序

    return ee; 
      

  8.   


    //Employee中的id属性不能设置为private,否则外部访问不到
    public static Employee[] sort(Employee ee[]) {
    // ...............添加代码处
    Arrays.sort(ee, new Comparator(){
    public int compare(Object o1, Object o2) {
    int i = ((Employee)o1).id;
    int j = ((Employee)o2).id;
    return i - j;
    }

    });
    return ee;
    }
      

  9.   


    public static Employee[] sort(Employee ee[]) {
    Arrays.sort(ee, new Comparator() {
    public final int compare(Object obj1, Object obj2) {
    Employee u1 = (Employee) obj1;
    Employee u2 = (Employee) obj2;
    int id1 = u1.getId();
    int id2 = u2.getId();
    return id1 - id2;
    }
    });
    return ee;
    }
      

  10.   

    实现Comparable接口,重写compareTo方法即可class Employee implements Comparable{ private int id; 
    private double salary; 
    public int compareTo(Object o){
       Employee obj = (Employee)o;
       if(obj.getId()>this.id)
        return -1;
       if(obj.getId()<this.id)
        return 1;
       if(obj.getSalary()>this.getSalary)
        return -1;
       if(obj.getSalary()<this.getSalary)
        return 1;
       return 0;
    }
    }
    over~