//一个POJO例子

  1. class User { 
  2.  String name; 
  3.  String age; 
  4.   
  5.  public User(String name,String age){ 
  6.   this.name=name; 
  7.   this.age=age; 
  8.  } 
  9.  public String getAge() { 
  10.   return age; 
  11.  } 
  12.  public void setAge(String age) { 
  13.   this.age = age; 
  14.  } 
  15.  public String getName() { 
  16.   return name; 
  17.  } 
  18.  public void setName(String name) { 
  19.   this.name = name; 
  20.  }  


//具体的比较类,实现Comparator接口

 

  1. import java.util.Comparator; 
  2. import java.util.List; 
  3. import java.util.ArrayList; 
  4. import java.util.Collections; 
  5.  
  6. public class ComparatorUser implements Comparator{ 
  7.  
  8.  public int compare(Object arg0, Object arg1) { 
  9.   User user0=(User)arg0; 
  10.   User user1=(User)arg1; 
  11.  
  12.    //首先比较年龄,如果年龄相同,则比较名字 
  13.  
  14.   int flag=user0.getAge().compareTo(user1.getAge()); 
  15.   if(flag==0){ 
  16.    return user0.getName().compareTo(user1.getName()); 
  17.   }else{ 
  18.    return flag; 
  19.   }   
  20.  } 

//测试类

  1. public class SortTest { 
  2.   public static void main(String[] args){ 
  3.   List userlist=new ArrayList(); 
  4.   userlist.add(new User("dd","4")); 
  5.   userlist.add(new User("aa","1")); 
  6.   userlist.add(new User("ee","5")); 
  7.   userlist.add(new User("bb","2"));   
  8.   userlist.add(new User("ff","5")); 
  9.   userlist.add(new User("cc","3")); 
  10.   userlist.add(new User("gg","6")); 
  11. ComparatorUser comparator=new ComparatorUser();  Collections.sort(userlist, comparator); 
  12.     for (int i=0;i<userlist.size();i++){ 
  13.    User user_temp=(User)userlist.get(i); 
  14.   System.out.println(user_temp.getAge()+","+user_temp.getName());  

 //首先年龄排序,如果年龄相同,则按名字排序

 

  1. 结果: 
  2.    1, aa 
  3.    2, bb 
  4.    3, cc 
  5.    4, dd 
  6.    5, ee    //注意:同样是5岁的人,则比较名字(ee,ff),然后排序 
  7.    5, ff 
  8.    6, gg