请教:JAVA中,comparator接口如何对double型数据进行排序。
例如,有个student类:publicclassStudent{Stringname;doublescore;}如何按score升序排列?因为comparator的co...
例如,有个student类:
public class Student {
String name;
double score;
}
如何按score升序排列? 因为comparator的compare方法,貌似返回值是int。那double该怎么实现排序? 展开
public class Student {
String name;
double score;
}
如何按score升序排列? 因为comparator的compare方法,貌似返回值是int。那double该怎么实现排序? 展开
2个回答
2012-02-23
展开全部
返回值是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));
}
}
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的大小判断,精度很烦人的。
展开全部
看例子
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;
}
}
}
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;
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询