日期:2014-05-20  浏览次数:20706 次

这个例子中去声明compareTo()方法干嘛用呢?
求大虾看看这个例子。
例子中已经使用sort()进行升序排列了。
那么,下面的compareTo()声明又是干什么用的呢?
菜鸟出来,请大虾们多多指教。。。。


/**
      @version   1.30   2004-02-27
      @author   Cay   Horstmann
*/

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;