A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区










  1. class myComparator implements Comparator<Student>{

  2.         @Override
  3.         public int compare(Student o1, Student o2) {
  4.                 // TODO Auto-generated method stub
  5.                 int num_score = new Integer(o1.getScore()).compareTo(new Integer(o2.getScore()));//比较成绩
  6.                 int num_name = o1.getName().compareTo(o2.getName());
  7.                 int num_age = new Integer(o1.getAge()).compareTo(new Integer(o2.getAge()));
  8.                 if(num_score == 0){       //如果成绩相同
  9.                         if(num_name == 0){
  10.                                 if(num_age == 0){
  11.                                         return 0;
  12.                                 }
  13.                                 else{
  14.                                         return num_age;
  15.                                 }
  16.                         }
  17.                         else{
  18.                                 return num_name;
  19.                         }
  20.                 }
  21.                 else{
  22.                         if(num_name == 0){
  23.                                 if(num_age == 0){
  24.                                         return 0;
  25.                                 }
  26.                                 else{
  27.                                         return num_score;
  28.                                 }
  29.                         }
  30.                         else{
  31.                                 return num_score;
  32.                         }
  33.                 }               
  34.         }       
  35. }
复制代码
先按照分数排序,如果分数相同则按照姓名排序,如果姓名相同则按照年龄排序。如果分数不同,则也需要想死的逻辑判断。但是感觉这个比较器看着好不爽。有没有更简便的方法啊




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马