请教:JAVA中,comparator接口如何对double型数据进行排序。

例如,有个student类:
public class Student {
String name;
double score;
}
如何按score升序排列? 因为comparator的compare方法,貌似返回值是int。那double该怎么实现排序?

返回值是int -1,0或1。1表示第一个数比第二个数大,0表示相等,-1表示第一个数比第二个数小。这个int跟你要比较的数值类型没关系。举例:
import java.util.Comparator;

public class Test1 implements Comparator<Double>{

public int compare(Double o1, Double o2) {

return o1.compareTo(o2);
}
public static void main(String[] args) {
Test1 t = new Test1();
double i=10,j=9;
System.out.println(t.compare(j, i));
}
}追问

我想问一下,Double中,compareTo方法中的判断精度是多少? 你也知道,double的大小判断,精度很烦人的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-05
看例子
import java.util.Comparator;

public class Student {
String name;
double score;

public double getScore(){
return score;
}

}

class StuComparator implements Comparator<Student>{

public int compare(Student o1, Student o2) {
if(o1.getScore() < o2.getScore()){
return -1;
}else if(o1.getScore() == o2.getScore()){
return 0;
}else{
return 1;
}

}

}本回答被提问者采纳
相似回答