天天看點

Collections.sort

//一個POJO例子

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

//具體的比較類,實作Comparator接口

  1. import java.util.Comparator; 
  2. import java.util.List; 
  3. import java.util.ArrayList; 
  4. import java.util.Collections; 
  5. public class ComparatorUser implements Comparator{ 
  6.  public int compare(Object arg0, Object arg1) { 
  7.   User user0=(User)arg0; 
  8.   User user1=(User)arg1; 
  9.    //首先比較年齡,如果年齡相同,則比較名字 
  10.   int flag=user0.getAge().compareTo(user1.getAge()); 
  11.   if(flag==0){ 
  12.    return user0.getName().compareTo(user1.getName()); 
  13.   }else{ 
  14.    return flag; 
  15.   }   
  16.  } 
  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 

繼續閱讀