要对总成绩SUM排序可是好像还是不对,还有要要按照输入id或sum排序,这怎么实现import java.util.Comparator;public class CoComparator implements Comparator { @Override
public int compare(Object a0, Object a1) {
Student s1 =(Student) a0;
Student s2 = (Student) a1;
  if (s1.getSum()<s2.getSum()){
  return 1;
  }else{
  return 0;
  }
}
}
]import java.util.ArrayList;
import java.util.Iterator;import java.util.Collections;public class Test {
public static void main(String[] args) {
Student s1 = new Student("haha",1,12,13);
Student s2 = new Student("xixi",2,11,15);
Student s3 = new Student("wowo",3,10,14);

ArrayList a = new ArrayList();
a.add(s1);
a.add(s2);
a.add(s3);

CoComparator co = new CoComparator();
Collections.sort(a,co);


Iterator it = a.iterator();
Student ss;

while(it.hasNext()){
ss=(Student)it.next();
System.out.println(ss.name+"   "+ss.id+"    "+ss.getSum());
}


}[/code
[code=Java]public class Student {
String name;
int id;
double math;
double english;
double sum;

public Student(String name, int id, double math, double english) {
this.name = name;
this.id = id;
this.math = math;
this.english = english;
} public double getSum() {
return sum=math+english;
}}

解决方案 »

  1.   

     comparetor,加上泛型比较是:
    大于返回1,等于返回0,小于返回-1Integer的compareTo方法的源码    /**
         * Compares two <code>Integer</code> objects numerically.
         *
         * @param   anotherInteger   the <code>Integer</code> to be compared.
         * @return the value <code>0</code> if this <code>Integer</code> is
         *  equal to the argument <code>Integer</code>; a value less than
         *  <code>0</code> if this <code>Integer</code> is numerically less
         *  than the argument <code>Integer</code>; and a value greater 
         *  than <code>0</code> if this <code>Integer</code> is numerically
         *   greater than the argument <code>Integer</code> (signed
         *   comparison).
         * @since   1.2
         */
        public int compareTo(Integer anotherInteger) {
    int thisVal = this.value;
    int anotherVal = anotherInteger.value;
    return (thisVal<anotherVal ? -1 : (thisVal==anotherVal ? 0 : 1));
        }
      

  2.   

    好了,如果要同时实现id或sum的呢?