春風博客

          春天里,百花香...

          導航

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

          統計

          公告

          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)原創,轉載請注明出處.
          主站蜘蛛池模板: 买车| 垣曲县| 余江县| 金平| 灵山县| 保靖县| 苏州市| 安多县| 固阳县| 西华县| 开江县| 游戏| 汝州市| 秭归县| 宝鸡市| 绍兴县| 肇庆市| 马山县| 疏附县| 鄯善县| 英吉沙县| 铁岭县| 高雄市| 西宁市| 阳东县| 辉南县| 石渠县| 古交市| 习水县| 诸暨市| 会宁县| 尼木县| 本溪市| 治县。| 贺兰县| 山阴县| 松滋市| 武城县| 长葛市| 怀化市| 潼南县|