春風(fēng)博客

          春天里,百花香...

          導(dǎo)航

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

          統(tǒng)計(jì)

          公告

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

          Locations of visitors to this page

          常用鏈接

          留言簿(11)

          隨筆分類(224)

          隨筆檔案(126)

          個(gè)人軟件下載

          我的其它博客

          我的鄰居們

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          java.util.Comparator使用示例

          Comparator的具體實(shí)現(xiàn)類
          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;
            }
           
          }


          測(cè)試:
          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 閱讀(7606) 評(píng)論(1)  編輯  收藏 所屬分類: Java API

          評(píng)論

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

          不錯(cuò)的例子, 頂!  回復(fù)  更多評(píng)論   

          sitinspring(http://www.aygfsteel.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
          主站蜘蛛池模板: 龙南县| 新平| 平邑县| 新巴尔虎右旗| 平江县| 通州市| 河池市| 永和县| 得荣县| 磴口县| 赣州市| 台南市| 海城市| 大冶市| 诸城市| 饶平县| 宁津县| 沛县| 武乡县| 健康| 佛教| 泸定县| 东兰县| 杨浦区| 东乡县| 北宁市| 葵青区| 方城县| 微博| 临沂市| 应用必备| 新密市| 肇东市| 陇川县| 德清县| 沁阳市| 永平县| 宣武区| 清流县| 平邑县| 高州市|