<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

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


      下面是源代碼:

     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     * 測(cè)試方法
    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) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产美女精品久久久久久久免费 | 男女啪啪永久免费观看网站| 在线观看www日本免费网站| 日韩精品在线免费观看| 免费视频精品一区二区三区| 国产精品免费观看调教网| 久久成人免费大片| 无码精品国产一区二区三区免费| 东方aⅴ免费观看久久av| 免费人成在线观看网站| 在线a免费观看最新网站| 免费中文熟妇在线影片| 四虎影视大全免费入口| 国产乱子影视频上线免费观看| 国产一级淫片a视频免费观看| 国产18禁黄网站免费观看| 亚洲av日韩av欧v在线天堂| 亚洲国产精品毛片av不卡在线| 亚洲天堂中文字幕在线| 亚洲欧洲成人精品香蕉网| 日本红怡院亚洲红怡院最新| 亚洲邪恶天堂影院在线观看| 亚洲国产精品午夜电影| 亚洲欧洲无码一区二区三区| 日本视频免费观看| 国内精品免费在线观看| 18禁止看的免费污网站| 好爽又高潮了毛片免费下载| 亚洲AV之男人的天堂| 久久夜色精品国产亚洲| 亚洲AV一二三区成人影片| 国产亚洲综合视频| a级在线观看免费| 2021免费日韩视频网| 国产成人精品免费视频软件| 国产成人精品日本亚洲专区| 亚洲国产精品无码专区在线观看| 亚洲国产电影在线观看| 免费精品久久久久久中文字幕| 免费人成在线观看视频高潮| 大学生一级毛片免费看|