import java.util.*;
public class TreeSetTest{
public static void main(String[] args){
TreeSet ts = new TreeSet(new Comparator(){
public int compare(Object o1,Object o2){
Integer i1 = (Integer)o1;
Integer i2 = (Integer)o2;
return i2.intValue() - i1.intValue();
}
});
ts.add(new Integer(1));
ts.add(new Integer(0));
ts.add(new Integer(5));
Iterator it = ts.iterator();

while (it.hasNext()){
System.out.println(it.next());
}
}
};请各位帮忙解答一下,谢谢~

解决方案 »

  1.   

    你给TreeSet一个自定义的比较器。
    这个比较器返回的是两个整数对象大小的比较。
    而且比较的规则是第二个对象比第一个大多少,即实现了反序。
    new Comparator(){
     /**
      * Compares its two arguments for order.
      * Parameters:
      *o1 - the first object to be compared.
      *o2 - the second object to be compared. 
      * Returns:
      *a negative integer, zero, or a positive integer as the first argument is less  
      *than, equal to, or greater than the second. 
      *
      *@see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
      */
     public int compare(Object o1,Object o2){
       Integer i1 = (Integer)o1;
       Integer i2 = (Integer)o2;
       return i2.intValue() - i1.intValue();
     }
    }