- class myComparator implements Comparator<Student>{
- @Override
- public int compare(Student o1, Student o2) {
- // TODO Auto-generated method stub
- int num_score = new Integer(o1.getScore()).compareTo(new Integer(o2.getScore()));//比较成绩
- int num_name = o1.getName().compareTo(o2.getName());
- int num_age = new Integer(o1.getAge()).compareTo(new Integer(o2.getAge()));
- if(num_score == 0){ //如果成绩相同
- if(num_name == 0){
- if(num_age == 0){
- return 0;
- }
- else{
- return num_age;
- }
- }
- else{
- return num_name;
- }
- }
- else{
- if(num_name == 0){
- if(num_age == 0){
- return 0;
- }
- else{
- return num_score;
- }
- }
- else{
- return num_score;
- }
- }
- }
- }
复制代码 先按照分数排序,如果分数相同则按照姓名排序,如果姓名相同则按照年龄排序。如果分数不同,则也需要想死的逻辑判断。但是感觉这个比较器看着好不爽。有没有更简便的方法啊
|
|