春風博客

          春天里,百花香...

          導航

          <2008年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統計

          公告

          MAIL: junglesong@gmail.com
          MSN: junglesong_5@hotmail.com

          Locations of visitors to this page

          常用鏈接

          留言簿(11)

          隨筆分類(224)

          隨筆檔案(126)

          個人軟件下載

          我的其它博客

          我的鄰居們

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          java.util.Comparator使用示例

          Comparator的具體實現類
          public class AgeComparator implements Comparator {
            
          public int compare(Object op1, Object op2) {
              Employee eOp1 
          = (Employee) op1;
              Employee eOp2 
          = (Employee) op2;

              
          // 按年齡排序
              return eOp1.getAge()-(eOp2.getAge());
            }

          }


          public class NameComparator implements Comparator {
            
          public int compare(Object op1, Object op2) {
              Employee eOp1 
          = (Employee) op1;
              Employee eOp2 
          = (Employee) op2;

              
          // 按姓名排序
              return eOp1.getName().compareTo(eOp2.getName());
            }

          }


          public class SalaryComparator implements Comparator {
            
          public int compare(Object op1, Object op2) {
              Employee eOp1 
          = (Employee) op1;
              Employee eOp2 
          = (Employee) op2;

              
          // 按薪水排序
              return eOp1.getSalary()-(eOp2.getSalary());
            }

          }


          Employee類:

          public class Employee{
            
          protected String name;
            
          protected int age;
            
          protected int salary;
            
            
          public Employee(String name,int age,int salary){
              
          this.name=name;
              
          this.age=age;
              
          this.salary=salary;
            }

            
            
          public int getAge() {
              
          return age;
            }

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

            
          public String getName() {
              
          return name;
            }

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

            
          public int getSalary() {
              
          return salary;
            }

            
          public void setSalary(int salary) {
              
          this.salary = salary;
            }
           
          }


          測試:
          public class Main{
            
          public static void main(String[] args){
              List
          <Employee> employees=new ArrayList<Employee>();
              
              employees.add(
          new Employee("Andy",21,2000));
              employees.add(
          new Employee("Felix",21,3000));
              employees.add(
          new Employee("Bill",35,20000));
              employees.add(
          new Employee("Helen",21,10000));
              employees.add(
          new Employee("Cindy",28,8000));
              employees.add(
          new Employee("Douglas",25,5000));
                  
              
          // 按名稱排序
                Collections.sort(employees,new NameComparator());
                display(employees);

                
          // 按年齡排序
                Collections.sort(employees,new AgeComparator());
                display(employees);
                
                
          // 按薪水排序
                Collections.sort(employees,new SalaryComparator());
                display(employees);
            }

            
            
          public static void display(List<Employee> employees){
              
          for(Employee e:employees){
                System.out.println(
          "雇員名="+e.getName()+" 年齡="+e.age+" 薪水="+e.getSalary());
              }

              
              System.out.println();
            }

          }


          輸出:
          雇員名=Andy 年齡=21 薪水=2000
          雇員名
          =Bill 年齡=35 薪水=20000
          雇員名
          =Cindy 年齡=28 薪水=8000
          雇員名
          =Douglas 年齡=25 薪水=5000
          雇員名
          =Felix 年齡=21 薪水=3000
          雇員名
          =Helen 年齡=21 薪水=10000

          雇員名
          =Andy 年齡=21 薪水=2000
          雇員名
          =Felix 年齡=21 薪水=3000
          雇員名
          =Helen 年齡=21 薪水=10000
          雇員名
          =Douglas 年齡=25 薪水=5000
          雇員名
          =Cindy 年齡=28 薪水=8000
          雇員名
          =Bill 年齡=35 薪水=20000

          雇員名
          =Andy 年齡=21 薪水=2000
          雇員名
          =Felix 年齡=21 薪水=3000
          雇員名
          =Douglas 年齡=25 薪水=5000
          雇員名
          =Cindy 年齡=28 薪水=8000
          雇員名
          =Helen 年齡=21 薪水=10000
          雇員名
          =Bill 年齡=35 薪水=20000


          posted on 2008-07-15 11:52 sitinspring 閱讀(7592) 評論(1)  編輯  收藏 所屬分類: Java API

          評論

          # re: java.util.Comparator使用示例 2012-09-12 20:01 Wuaner

          不錯的例子, 頂!  回復  更多評論   

          sitinspring(http://www.aygfsteel.com)原創,轉載請注明出處.
          主站蜘蛛池模板: 旺苍县| 陆河县| 永胜县| 遂宁市| 大埔区| 开江县| 平泉县| 当雄县| 丹东市| 茌平县| 旺苍县| 甘谷县| 合作市| 井陉县| 巨野县| 浦城县| 安阳县| 甘南县| 庄河市| 肃宁县| 屯昌县| 兰溪市| 门头沟区| 密云县| 宁远县| 长春市| 梁河县| 东阿县| 织金县| 淮安市| 桐梓县| 连云港市| 玛多县| 霍邱县| 吉首市| 利川市| 沿河| 资兴市| 泸定县| 哈密市| 昔阳县|