<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 60,comments - 71,trackbacks - 0

                實現對象排序有兩種方式,一種是實現Comparator接口,另一種是實現Comparable接口,兩者的不同之處是
        前一種方式要實現的是
        int compare(Object o1,Object o2) {
            return ((User) o1).getAge() - ((User)o2).getAge();
        },這個方法,
       后一種方式是要實現的是
       int compareTo(Object o) {
        return this.age - ((User) o).getAge();
      }
      使用時,前一種方式是:Arrays.sort(users,new te());第一個參數是要排序的對象數組,
      第二個參數是一個要實現Comparator接口的類,如果該對象未實現Comparator接口,則需單獨提供一個實現Comparator接口的類;
      后一種方式是:Arrays.sort(users);只需一個對象數組參數即可,該對象必須實現Comparable接口,當使用第二種方式時,還可以
      提供升序變降序(反之亦可)的參數,Collections.reverseOrder();
     
      另外兩種方式都可以在要實現的方法中根據某些"標志"來實現對對象的不同屬性進行排序,如User對象有年齡,姓名,收入等屬性,現在有
      這樣一個需求,在頁面上顯示了此對象的各種屬性值,現在要點擊年齡時按年齡排序,點擊收入時按收入排序(也即常說的點擊表頭排序),就
      可以采用這種方式,具有體如下:
      static flag = "1";
      int compareTo(Object o) {
      if(flag.equals("1")) {
        return this.age - ((User) o).getAge();
      }
      else if(flag.equals("2")) {
          return this.salar - ((User) o).getSalar();
      }
      else {
          return this.age - ((User) o).getAge();
      }
      ......
      定義一個類變量,在頁面上單擊進判斷,如果單擊的是年齡,則在處理的類當中將flag設為1,單擊收入時,設為2,這樣就可以根據對象的不同
      屬性進行排序了.


      下面是源代碼:

     1package com.rao.test.compare;
     2
     3/*
     4 * Created on 2008-4-25
     5 * Author henry
     6 * TODO To change the template for this generated file go to
     7 * Window - Preferences - Java - Code Style - Code Templates
     8 */

     9
    10import java.util.Arrays;
    11
    12/**
    13 * @author tcl-user
    14 *
    15 * TODO To change the template for this generated type comment go to
    16 * Window - Preferences - Java - Code Style - Code Templates
    17 */

    18public class UserComparable implements Comparable {
    19    private String id;
    20    private int age;
    21
    22    public UserComparable(String id, int age) {
    23      this.id = id;
    24      this.age = age;
    25    }

    26
    27    public int getAge() {
    28      return age;
    29    }

    30
    31    public void setAge(int age) {
    32      this.age = age;
    33    }

    34
    35    public String getId() {
    36      return id;
    37    }

    38
    39    public void setId(String id) {
    40      this.id = id;
    41    }

    42    
    43    public int compareTo(Object o) {
    44        return this.getAge() - ((UserComparable)o).getAge();
    45    }

    46    
    47
    48
    49    /**
    50     * 測試方法
    51     */

    52    public static void main(String[] args) {
    53        UserComparable[] users = new UserComparable[] new UserComparable("abc"30), new UserComparable("def"10) };
    54      Arrays.sort(users);
    55      for (int i = 0; i < users.length; i++{
    56          UserComparable user = users[i];
    57        System.out.println(user.getId() + " " + user.getAge());
    58      }

    59    }

    60
    61  }
    posted on 2008-04-26 21:23 henry1451 閱讀(815) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 性感美女视频在线观看免费精品 | 18禁亚洲深夜福利人口| 亚洲一区二区三区香蕉| 永久免费毛片在线播放| 很黄很污的网站免费| 黄网站色视频免费看无下截 | 一边摸一边爽一边叫床免费视频| 亚洲国产综合第一精品小说| 亚洲熟妇av一区二区三区漫画| 天天拍拍天天爽免费视频| 99xxoo视频在线永久免费观看| 美女黄色毛片免费看| 亚洲天堂2016| 精品亚洲成a人片在线观看| 亚洲欧洲日本在线| 国产大片91精品免费观看男同| 国产精品无码免费播放| 5g影院5g天天爽永久免费影院| 中文字幕无码免费久久9一区9 | 亚洲AV日韩AV永久无码久久 | 日韩久久无码免费毛片软件| 亚洲国产成人精品激情| 亚洲精品中文字幕乱码影院| 国产亚洲精品va在线| 性xxxx视频免费播放直播| 久久国产乱子伦精品免费午夜 | 99re免费在线视频| 国产精品网站在线观看免费传媒| 国产黄在线播放免费观看| 亚洲国产成AV人天堂无码| 亚洲av激情无码专区在线播放 | 国产精品亚洲小说专区| 亚洲色偷偷综合亚洲AV伊人蜜桃| 亚洲一区二区影院| 久久久久亚洲Av片无码v| 亚洲日韩欧洲乱码AV夜夜摸| 亚洲中文字幕在线第六区| 77777亚洲午夜久久多人| 在线亚洲人成电影网站色www| 精品国产亚洲男女在线线电影| 日本免费人成网ww555在线|