出处:http://blog.csdn.net/ftlovexg/archive/2007/04/25/1583757.aspx

java 代码
  1. package test;   
  2.   
  3. import java.util.Collections;   
  4. import java.util.Comparator;   
  5. import java.util.ArrayList;   
  6. import org.apache.commons.beanutils.BeanComparator;   
  7. import org.apache.commons.collections.ComparatorUtils;   
  8. import org.apache.commons.collections.comparators.ComparableComparator;   
  9. import org.apache.commons.collections.comparators.ComparatorChain;   
  10.   
  11. public class CompareTipA  {   
  12.     private int  id;   
  13.     private String  name;   
  14.     private String age;   
  15.   
  16.     public static void main(String []args) {   
  17.         ArrayList<Object> list = new ArrayList<Object>();   
  18.         list.add(new CompareTipA(1,"3","五"));   
  19.         list.add(new CompareTipA(1,"1","六"));   
  20.         list.add(new CompareTipA(1,"5","二"));   
  21.         list.add(new CompareTipA(1,"4","四"));   
  22.         list.add(new CompareTipA(4,"2","一"));   
  23.   
  24.         Comparator mycmp = ComparableComparator.getInstance();   
  25.         mycmp = ComparatorUtils.nullLowComparator(mycmp);  //允许null      
  26.         mycmp = ComparatorUtils.reversedComparator(mycmp); //逆序      
  27.            
  28.         ArrayList<Object> sortFields = new ArrayList<Object>();   
  29.         sortFields.add(new BeanComparator("id", mycmp));     //id逆序  (主)   
  30.         sortFields.add(new BeanComparator("name"));            //name正序 (副)   
  31.         ComparatorChain multiSort = new ComparatorChain(sortFields);   
  32.         Collections.sort(list,multiSort);   
  33.            
  34.         for (int i =0;i<list.size();i++) {   
  35.             System.out.println(list.get(i));    //输出   
  36.         }   
  37.     }   
  38.   
  39.     public CompareTipA(int id, String name,String age) {   
  40.         this.id = id;   
  41.         this.name = name;   
  42.         this.age = age;   
  43.     }   
  44.   
  45.     public int getId() {   
  46.         return this.id;   
  47.     }   
  48.   
  49.     public void setId(int id) {   
  50.         this.id = id;   
  51.     }   
  52.   
  53.     public String getName() {   
  54.         return this.name;   
  55.     }   
  56.   
  57.     public void setName(String name) {   
  58.         this.name = name;   
  59.     }   
  60.   
  61. //    public int compareTo(Object o) {   
  62. //        return this.comparator.compare(this, o);   
  63. //    }   
  64.   
  65.     public String toString() {   
  66.         return "[id=" + this.id + ",name=" + this.name +",age=" + this.age +"]";   
  67.     }   
  68.   
  69.     public String getAge() {   
  70.         return age;   
  71.     }   
  72.   
  73.     public void setAge(String age) {   
  74.         this.age = age;   
  75.     }   
  76. }   
评论
发表评论

您还没有登录,请登录后发表评论

letle
搜索本博客
存档
最新评论