Collections.sort()メソッドオブジェクトのソート

2313 ワード

 
  
Collections.sort()     List      ,             ,       :
1. public static Comparable super T>> void sort(List list)
  Collection     ,  T      Comparable  ,  :

class Employee implements Comparable{    private Integer pay;
    public Employee(int pay){        this.pay=pay;    }
     public void show(){         System.out.println(pay);     }
     @Override     public int compareTo(Employee o) {         return this.pay.compareTo(o.pay);     }}
テスト:
public class Test{    public static void main(String[] args) {      List list=new ArrayList();      list.add(new Employee(22));      list.add(new Employee(1));      list.add(new Employee(233));      list.add(new Employee(12));      list.add(new Employee(165));
      Collection.sort(list);      for(Employee e:list){          e.show();      }
}
出力結果は以下の通りです.
    1    12    22    165    233
2.public static void sort(
List
 list,
Comparator
super T> c) 
class Employer{     private Integer age;     public Employer(int age) {         this.age=age;     }    public void show(){         System.out.println(age);    }    public Integer getAge(){         return this.age;    }}
テストしてみる
public class Test{
    public static void main(String[] args) {      List list=new ArrayList();      list.add(new Employer(22));      list.add(new Employer(1));      list.add(new Employer(233));      list.add(new Employer(12));      list.add(new Employer(165));      Collections.sort(list,new Comparator() {          @Override          public int compare(Employer o1, Employer o2) {              return o1.getAge().compareTo(o2.getAge());          }      });      for(Employer e:list){          e.show();      }
    }
}
    1    12    22    165    233
まとめ:1つ目の方法は固定属性でしかソートできません.後者は柔軟ですが、コードはやや複雑です.