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つ目の方法は固定属性でしかソートできません.後者は柔軟ですが、コードはやや複雑です.