日期:2014-05-20  浏览次数:20699 次

关于重写 compare排序 跪求大神
我想调用Collections的sort方法按age排序指定比较器要怎么写啊 就是compare方法
先跪谢了
package com.coll; 
import java.util.*;
public class Test {

public static void main(String[] args) {
List l=new ArrayList();
Tt t=new Tt();
Aa a=new Aa(1,4);
Aa a1=new Aa(3,3);
Aa a2=new Aa(2,2);
l.add(a);
l.add(a1);
l.add(a2);
Collections c = null;
     c.sort(l,t);
}

}
class Aa {
int id; int age;
public Aa(int id,int age){
this.id=id;this.age=age;
}
public String toString(){
return id+age+"";
}
}
class Tt implements Comparator{

public int compare(Object o, Object o1) {
//这里该怎么写 才能无视 id按age排序

}}

------解决方案--------------------
class Tt implements Comparator<Aa> {
  public int compare(Aa a, Aa b){
    return a.age - b.age;
  }
}

Comparator.compare
Comparable.compareTo
返回值类似:
1 正数:左边对象应该排在右边对象的后面(Comparator.compare第一个参数为左,Comparable.compareTo的this为左,下同)
2 零:左边和右边对象相同(谁先谁后顺序不变)
3 负数:左边对象应该排在右边对象的前面