java编程List按照多个属性进行排序

来源:互联网 发布:手机淘宝试用 编辑:程序博客网 时间:2024/06/06 17:59

本示例中只选择了按照两个属性进行排序,3、4、n个属性的排序以此类推

Collections.sort(mapList, new Comparator<Record>(){   /*           * int compare(Record o1, Record o2) 返回一个基本类型的整型,           * 返回负数表示:o1 小于o2,           * 返回0 表示:o1和o2相等,           * 返回正数表示:o1大于o2。           */   public int compare(Record o1, Record o2) {      if( o2.getStatus()>o1.getStatus())         return 1;      else if(o1.getStatus()==o2.getStatus()){         if(o1.getCreateTime().before(o2.getCreateTime()) )            return 1;         else if(o1.getCreateTime()==o2.getCreateTime())            return 0;         else            return -1;      }      else         return -1;   }});

说明:代码解读先按照 status的大小倒序排列,如果值相同的,再按照创建时间倒序排列

解读:当compare方法返回值为1时 ,需要调换两个对象的位置

0 0