List 中对象按属性排序

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


class Employee implementsComparable<Employee>{
    privateInteger pay;


    publicEmployee(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{
    publicstatic 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(Employeee:list){
         e.show();
     }

}

      输出结果如下
   1
    12
    22
    165
   233
2.public static<T> voidsort( List <T> list, Comparator <?superT> c) 

class Employer{
    private Integer age;
    public Employer(int age) {
        this.age=age;
    }
    public voidshow(){
        System.out.println(age);
    }
    publicInteger getAge(){
        return this.age;
    }
}
      测试一下

publicclass Test{

   public static void main(String[] args) {
     List<Employer> list=newArrayList<Employer>();
     list.add(new Employer(22));
     list.add(new Employer(1));
     list.add(new Employer(233));
     list.add(new Employer(12));
     list.add(newEmployer(165));
     Collections.sort(list,newComparator<Employer>() {
         @Override
         public int compare(Employer o1, Employer o2) {
             returno1.getAge().compareTo(o2.getAge());
         }
     });
     for(Employer e:list){
         e.show();
      
}

   

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值