java 数组比较排序

来源:互联网 发布:会员数据分析模型 编辑:程序博客网 时间:2024/06/02 23:32

java数组比较排序需要实现Comparable接口,并实现其中的compareTo方法,方可用compareTo进行比较或者用Arrays.sort(arrayObj); 进行排序

代码:

 

Java代码 复制代码 收藏代码
  1. /**一个雇员类    实现了比较的接口  
  2.  * @author CXY  
  3.  *  
  4.  */  
  5. public class Employee implements Comparable<Employee>   
  6. {   
  7.     /**  
  8.      *  姓名  
  9.      */  
  10.     private String name;   
  11.        
  12.     /**  
  13.      *  工资   
  14.      */  
  15.     private float money;   
  16.        
  17.     /**构造函数  
  18.      * @param name  
  19.      * @param money  
  20.      */  
  21.     Employee(String name,float money)   
  22.     {   
  23.         this.name=name;   
  24.         this.money=money;   
  25.     }   
  26.        
  27.     /**  
  28.      * 显示雇员信息  
  29.      */  
  30.     public void showEmployeeMessage()   
  31.     {   
  32.         System.out.println("姓名:"+name+",工资:"+money);   
  33.     }   
  34.        
  35.        
  36.     //实现比较接口的方法   
  37.     @Override  
  38.     public int compareTo(Employee anotherOne)   
  39.     {   
  40.         if(money > anotherOne.getMoney())   
  41.         {   
  42.             return 1;   
  43.         }else if(money < anotherOne.getMoney())   
  44.         {   
  45.             return -1;   
  46.         }   
  47.         return 0;   
  48.     }   
  49.   
  50.   
  51.     public String getName()   
  52.     {   
  53.         return name;   
  54.     }   
  55.   
  56.   
  57.   
  58.     public void setName(String name)   
  59.     {   
  60.         this.name = name;   
  61.     }   
  62.   
  63.   
  64.   
  65.     public float getMoney()   
  66.     {   
  67.         return money;   
  68.     }   
  69.   
  70.   
  71.   
  72.     public void setMoney(float money)   
  73.     {   
  74.         this.money = money;   
  75.     }   
  76.   
  77. }  

 

这个是一个实现了compareTo接口的雇员类,那么它就可以进行比较和排序了。

 

测试类:

Java代码 复制代码 收藏代码
  1. import java.util.ArrayList;   
  2. import java.util.Arrays;   
  3. import java.util.List;   
  4.   
  5. /**雇员测试类  
  6.  * @author CXY  
  7.  */  
  8. public class EmployeeTest   
  9. {   
  10.     public static void main(String[] args) throws Exception   
  11.     {   
  12.         Employee[] employeeA=new Employee[3];   
  13.            
  14.         employeeA[0]=new Employee("小红"5000.5f);   
  15.         employeeA[1]=new Employee("小黄"8000.8f);   
  16.         employeeA[2]=new Employee("小白"5000.6f);   
  17.            
  18.         System.out.println("工资排序前:");   
  19.         for(Employee one:employeeA)   
  20.         {   
  21.             one.showEmployeeMessage();   
  22.         }   
  23.            
  24.         Arrays.sort(employeeA);   
  25.            
  26.         System.out.println("=====================");   
  27.         System.out.println("工资排序后:");   
  28.         for(Employee one:employeeA)   
  29.         {   
  30.             one.showEmployeeMessage();   
  31.         }   
  32.            
  33.         System.out.println("=====================");   
  34.         if(employeeA[1].compareTo(employeeA[0])==1)   
  35.         {   
  36.             System.out.println(employeeA[1].getName()+"比"+employeeA[0].getName()+"工资高");   
  37.         }else if(employeeA[1].compareTo(employeeA[0])==-1)   
  38.         {   
  39.             System.out.println(employeeA[1].getName()+"比"+employeeA[0].getName()+"工资低");   
  40.         }else  
  41.         {   
  42.             System.out.println(employeeA[1].getName()+"和"+employeeA[0].getName()+"工资一样");   
  43.         }   
  44.            
  45.         System.out.println("===============比较测试===============");   
  46.            
  47.            
  48.     }   
  49.        
  50. }  

 

compareTo的实现方式:

x.compareTo(y)为例,当x小于y的时候,返回一个负数。当x大于y的时候,返回一个正数。相等的时候返回0.

原创粉丝点击