Comparator

Posted by Saylst on June 20, 2016

Comparator

背景:对一个用户(包括name、score两个属性)List按score大小排序,要求成绩相同时,保持List中的原有顺序。


参数:

1.ascending == 1 从低到高
2.ascending == 0 从高到低

注: 如果参数不是0或1,则直接返回-1


结果:

排序成功则返回0

public static int sortUser(int ascending)
{
   final int op = ascending;
   Collections.sort(users, new Comparator<User>() {
      @Override
      public int compare(User u1, User u2) {
         if(u1.score > u2.score){
            return op==1 ? 1 : -1;
         }else if(u1.score < u2.score){
            return op==1 ? -1 : 1;
         }else{
            return 0;
         }
      }
   });
   return 0;
}