Dict.CN 在線詞典, 英語學(xué)習(xí), 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統(tǒng)計(jì)

          留言簿(23)

          積分與排名

          優(yōu)秀學(xué)習(xí)網(wǎng)站

          友情連接

          閱讀排行榜

          評(píng)論排行榜

          BeanComparator實(shí)現(xiàn)ArrayList復(fù)合排序[轉(zhuǎn)]

          http://blog.csdn.net/ftlovexg/article/details/1583757

          研究了幾天,那時(shí)候就是認(rèn)為要繼承Comparable接口,重寫CompareTo方法,結(jié)果走向了歧路.后來就搜啊搜,發(fā)現(xiàn)了點(diǎn)東西.自己又總結(jié)了下.需要的JAR包:commons.collections.jar

          package test;

          import java.util.Collections;
          import java.util.Comparator;
          import java.util.ArrayList;
          import org.apache.commons.beanutils.BeanComparator;
          import org.apache.commons.collections.ComparatorUtils;
          import org.apache.commons.collections.comparators.ComparableComparator;
          import org.apache.commons.collections.comparators.ComparatorChain;

          public class CompareTipA  {
              
          private int  id;
              
          private String  name;
              
          private String age;

              
          public static void main(String []args) {
                  ArrayList
          <Object> list = new ArrayList<Object>();
                  list.add(
          new CompareTipA(1,"3",""));
                  list.add(
          new CompareTipA(1,"1",""));
                  list.add(
          new CompareTipA(1,"5",""));
                  list.add(
          new CompareTipA(1,"4",""));
                  list.add(
          new CompareTipA(4,"2",""));

                  Comparator mycmp 
          = ComparableComparator.getInstance();
                  mycmp 
          = ComparatorUtils.nullLowComparator(mycmp);  //允許null   
                  mycmp = ComparatorUtils.reversedComparator(mycmp); //逆序   
                  
                  ArrayList
          <Object> sortFields = new ArrayList<Object>();
                  sortFields.add(
          new BeanComparator("id", mycmp));     //id逆序  (主)
                  sortFields.add(new BeanComparator("name"));            //name正序 (副)
                  ComparatorChain multiSort = new ComparatorChain(sortFields);
                  Collections.sort(list,multiSort);
                  
                  
          for (int i =0;i<list.size();i++) {
                      System.out.println(list.get(i));    
          //輸出
                  }
              }

              
          public CompareTipA(int id, String name,String age) {
                  
          this.id = id;
                  
          this.name = name;
                  
          this.age = age;
              }

              
          public int getId() {
                  
          return this.id;
              }

              
          public void setId(int id) {
                  
          this.id = id;
              }

              
          public String getName() {
                  
          return this.name;
              }

              
          public void setName(String name) {
                  
          this.name = name;
              }

          //    public int compareTo(Object o) {
          //        return this.comparator.compare(this, o);
          //    }

              
          public String toString() {
                  
          return "[id=" + this.id + ",name=" + this.name +",age=" + this.age +"]";
              }

              
          public String getAge() {
                  
          return age;
              }

              
          public void setAge(String age) {
                  
          this.age = age;
              }

           

          posted on 2011-11-10 10:45 都市淘沙者 閱讀(1009) 評(píng)論(0)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

          主站蜘蛛池模板: 黄冈市| 平潭县| 武陟县| 炉霍县| 鲜城| 巴青县| 弥勒县| 平顺县| 阳西县| 宜丰县| 富阳市| 松溪县| 来安县| 枣阳市| 南康市| 灵石县| 南京市| 婺源县| 海宁市| 共和县| 贡山| 射洪县| 西峡县| 乌兰察布市| 潜江市| 资兴市| 黔南| 永顺县| 镇安县| 绵竹市| 汶上县| 万荣县| 东平县| 泸州市| 齐齐哈尔市| 许昌市| 南雄市| 娄底市| 新龙县| 喜德县| 东兰县|