您的位置:首页 > 其它

Collections.sort()方法对象排序

2016-07-04 17:39 423 查看
Collections.sort()方法可以对List对象进行排序,用户需要按特定属性进行排序,有两种实现方法:
1. public static <T extends Comparable<? super T>> void sort(List<T> list)
使用Collection的这个方法,需要T类的对象实现Comparable接口,如下:

class Employee implements Comparable<Employee>{
    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<Employee> list=new ArrayList<Employee>();
      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
    2332.public static <T> void sort(List<T> 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<Employer> list=new ArrayList<Employer>();
      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<Employer>() {
          @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总结:第一种方法只能按固定属性排序,后者比较灵活,但是代码稍显复杂。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: