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

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

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

    posts - 431,  comments - 344,  trackbacks - 0
    需求:公司要將員工進行排序(不要說領導排在前面),我們的需求比較復雜。先進行姓排序,誰的姓拼音靠前,誰就排前面。然后對名字進行排序。恩.如果同名,女性排前頭。如果名字和性別都相同,年齡小的排前頭。
    代碼如下:

    Person.java

    package com.founder.common;

    public class Person {
     private String firstName;
     private String lastName;
     private boolean sex;
     private int age;

     public Person(String firstName, String lastName, boolean sex, int age) {
      this.firstName = firstName;
      this.lastName = lastName;
      this.sex = sex;
      this.age = age;
     }
     public int getAge() {
      return age;
     }
     public void setAge(int age) {
      this.age = age;
     }
     public String getFirstName() {
      return firstName;
     }
     public void setFirstName(String firstName) {
      this.firstName = firstName;
     }
     public String getLastName() {
      return lastName;
     }
     public void setLastName(String lastName) {
      this.lastName = lastName;
     }
     public boolean getSex() {
      return sex;
     }
     public void setSex(boolean sex) {
      this.sex = sex;
     }
     
     public String toString() {
      return firstName + " " + lastName + " " + (sex ? "Male" : "Female") + " " + age;
     }
    }

    Comparator.java

    package com.founder.common;

    public class Comparator{
     public static Java.util.Comparator getComparator() {
      return new Java.util.Comparator() {
       public int compare(Object o1, Object o2) {
        if (o1 instanceof String) {
         return compare((String) o1, (String) o2);
        } else if (o1 instanceof Integer) {
         return compare((Integer) o1, (Integer) o2);
        } else if (o1 instanceof Person) {
         return compare((Person) o1, (Person) o2);
        } else {
         System.err.println("未找到適合的比較器");
         return 1;
        }
       }
       
       public int compare(String o1, String o2) {
        int len1 = o1.length();
        int len2 = o2.length();
        int n = Math.min(len1, len2);
        char v1[] = o1.toCharArray();
        char v2[] = o2.toCharArray();
        int pos = 0;
        
        while (n-- != 0) {
         char c1 = v1[pos];
         char c2 = v2[pos];
         
         if (c1 != c2) {
          return c1 - c2;
         }
         pos++;
        }
        
        return len1 - len2;
       }
       
       public int compare(Integer o1, Integer o2) {  
              int val1 = o1.intValue();  
              int val2 = o2.intValue();  
              return (val1 < val2 ? -1 : (val1 == val2 ? 0 : 1));  
          }
       
       public int compare(boolean o1, boolean o2) {
        return (o1 == o2 ? 0 : (o1 == true ? 1: -1));
       }
       
       public int compare(Person o1, Person o2) {
        String firstname1 = o1.getFirstName();  
              String firstname2 = o2.getFirstName();  
              String lastname1 = o1.getLastName();  
              String lastname2 = o2.getLastName();  
              boolean sex1 = o1.getSex();  
              boolean sex2 = o2.getSex();  
              int age1 = o1.getAge();  
              int age2 = o2.getAge();  
              return (compare(firstname1, firstname2) == 0 ?
                (compare(lastname1, lastname2) == 0 ? (compare(sex1, sex2) == 0 ? (compare(age1, age2) == 0 ? 0 :
                 compare(age1, age2)) :
                  compare(sex1, sex2)) :
                   compare(lastname1, lastname2)) :
                    compare(firstname1, firstname2));
       }
      };
     }
    }

    PersonTest.java

    package com.founder.common;

    public class PersonTest {

     public static void main(String[] args) {
      Person[] person = new Person[] {
        new Person("ouyang", "feng", true, 25),
        new Person("zhuang", "gw", false, 36),
        new Person("zhuang", "gw", true, 36),
        new Person("zhuang", "gw", true, 33),
        new Person("zhuang", "gw", false, 23),
        new Person("yang", "gw", true, 43)};
      for (int i = 0; i < person.length; i++) {
       System.out.println("before sort=" + person[i]);
      }

      java.util.Arrays.sort(person, Comparator.getComparator());

      System.out.println("*************************************");
      
      for (int i = 0; i < person.length; i++) {
       System.out.println("after sort=" + person[i]);
      }

     }

    }


    輸出結果為:
    before sort=ouyang feng Male 25
    before sort=zhuang gw Female 36
    before sort=zhuang gw Male 36
    before sort=zhuang gw Male 33
    before sort=zhuang gw Female 23
    before sort=yang gw Male 43
    *************************************
    after sort=ouyang feng Male 25
    after sort=yang gw Male 43
    after sort=zhuang gw Female 23
    after sort=zhuang gw Female 36
    after sort=zhuang gw Male 33
    after sort=zhuang gw Male 36

    posted on 2008-04-16 20:47 周銳 閱讀(2771) 評論(5)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 久久国产乱子伦精品免费午夜| 亚洲熟妇丰满xxxxx| 亚洲最新在线视频| 亚洲乱码在线观看| 亚洲国产综合AV在线观看| jizz免费观看| 日韩免费人妻AV无码专区蜜桃| 成人免费视频网站www| 免费一级大黄特色大片| 久久91亚洲人成电影网站| 亚洲国产精品久久久久秋霞影院| 亚洲欧美日韩中文无线码| 国产日韩久久免费影院| 18禁止看的免费污网站| 日本免费一区二区三区最新vr| 国产亚洲成人久久| 亚洲蜜芽在线精品一区| 国产亚洲欧美在线观看| 最近免费中文字幕MV在线视频3| 99热在线精品免费全部my| vvvv99日韩精品亚洲| 亚洲一区二区三区电影| 亚洲国产成人久久精品软件| 国产一区二区三区免费观在线| 免费看h片的网站| 亚洲麻豆精品国偷自产在线91| 日韩亚洲Av人人夜夜澡人人爽 | 亚洲国产av玩弄放荡人妇 | 亚洲AV无码一区二区大桥未久 | 女人毛片a级大学毛片免费| 国产gv天堂亚洲国产gv刚刚碰| 中文字幕在线观看亚洲| 免费无码又爽又黄又刺激网站 | 足恋玩丝袜脚视频免费网站| 免费午夜爽爽爽WWW视频十八禁 | 奇米影视亚洲春色| 在线a亚洲老鸭窝天堂av高清| 黄床大片免费30分钟国产精品| 成人免费看吃奶视频网站| 日本亚洲成高清一区二区三区| 亚洲高清毛片一区二区|