春風博客

          春天里,百花香...

          導航

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

          評論

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

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

          sitinspring(http://www.aygfsteel.com)原創,轉載請注明出處.
          主站蜘蛛池模板: 连平县| 奉化市| 宁陵县| 陈巴尔虎旗| 通化市| 巴楚县| 上虞市| 永年县| 德清县| 阳朔县| 尼玛县| 奉贤区| 洛浦县| 乌鲁木齐市| 深圳市| 宜黄县| 广南县| 威信县| 公安县| 丹阳市| 北碚区| 义乌市| 壶关县| 谢通门县| 德钦县| 郴州市| 宁阳县| 鄂托克旗| 余庆县| 东丰县| 亚东县| 集贤县| 陕西省| 乐平市| 遂宁市| 锡林浩特市| 东安县| 阿克苏市| 梅河口市| 茂名市| 沁阳市|