春風博客

          春天里,百花香...

          導航

          <2012年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          統(tǒng)計

          公告

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

          Locations of visitors to this page

          常用鏈接

          留言簿(11)

          隨筆分類(224)

          隨筆檔案(126)

          個人軟件下載

          我的其它博客

          我的鄰居們

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          java.util.Comparator使用示例

          Comparator的具體實現(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;
            }
           
          }


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

          評論

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

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

          sitinspring(http://www.aygfsteel.com)原創(chuàng),轉(zhuǎn)載請注明出處.
          主站蜘蛛池模板: 柳江县| 汉源县| 格尔木市| 台中县| 东方市| 霸州市| 绩溪县| 应城市| 永顺县| 湖州市| 荣昌县| 施甸县| 桐梓县| 会宁县| 西吉县| 邯郸市| 玛曲县| 克拉玛依市| 伊春市| 迁西县| 玉门市| 龙山县| 临安市| 奎屯市| 大冶市| 集贤县| 陇西县| 罗山县| 无极县| 双柏县| 铁岭市| 绥阳县| 栾城县| 环江| 海阳市| 双峰县| 白河县| 南涧| 兴和县| 萝北县| 蛟河市|