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

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

Collections.sort(mapList, new Comparator(){
   /*
           * 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时 ,需要调换两个对象的位置

你可能感兴趣的:(java算法)