现有一对象数组,如果自己不写排序算法的话,有没有办法按照数组中每个对象的某个属性(int 类型)对该数组进行排序?最好能给个实现的例子

解决方案 »

  1.   

    请大家到我的计算机论坛看看,随便给提点意见,人多力量大嘛,注册一下,回答几个一直我都不会的问题,肯定我会给大家奖励的,网址是,http://java.cc.topzj.com/
      

  2.   

    两种方法,
    第一种,继承java.lang.Comparable
    定义 > = < 的规则,分别返回 1 0 -1
    例:if(object1.i > object2.i)  return 1;
        if()..............
    i为object对象中的int属性
    第二种方法,实现java.util.comparator接口
    覆盖里面的compara()
    使用时用重载后的sort(List, comparator)
      

  3.   

    给楼主一个例子,和你的要求一样
    import java.util.*;public class EmployeeSortTest
    {  
       public static void main(String[] args)
       {  
          Employee[] staff = new Employee[3];      staff[0] = new Employee("Harry Hacker", 35000);
          staff[1] = new Employee("Carl Cracker", 75000);
          staff[2] = new Employee("Tony Tester", 38000);      Arrays.sort(staff);      // print out information about all Employee objects
          for (Employee e : staff)
             System.out.println("name=" + e.getName() + ",salary=" + e.getSalary());
       }
    }class Employee implements Comparable<Employee>
    {  
       public Employee(String n, double s)
       {  
          name = n;
          salary = s;
       }   public String getName()
       {  
          return name;
       }   public double getSalary()
       {  
          return salary;
       }   public void raiseSalary(double byPercent)
       {  
          double raise = salary * byPercent / 100;
          salary += raise;
       }   /**
          Compares employees by salary
          @param other another Employee object
          @return a negative value if this employee has a lower
          salary than otherObject, 0 if the salaries are the same,
          a positive value otherwise
       */
       public int compareTo(Employee other)
       {  
          if (salary < other.salary) return -1;
          if (salary > other.salary) return 1;
          return 0;
       }   private String name;
       private double salary;
    }