java compare 降序/升序怎么确定
privateclassComparatorListimplementsComparator{publicintcompare(Objectarg0,Objectarg1...
private class ComparatorList implements Comparator {
public int compare(Object arg0, Object arg1) {
ErpAccountCheckDetail cd1 = (ErpAccountCheckDetail)arg0;
ErpAccountCheckDetail cd2 = (ErpAccountCheckDetail)arg1;
return cd1.getCheckDate().compareTo(cd2.getCheckDate());
}
}
return cd1.getCheckDate().compareTo(cd2.getCheckDate());返回值是怎么确定升序降序的,返回值不是有可能为1,-1,0吗,是怎么确定升序或是降序的 展开
public int compare(Object arg0, Object arg1) {
ErpAccountCheckDetail cd1 = (ErpAccountCheckDetail)arg0;
ErpAccountCheckDetail cd2 = (ErpAccountCheckDetail)arg1;
return cd1.getCheckDate().compareTo(cd2.getCheckDate());
}
}
return cd1.getCheckDate().compareTo(cd2.getCheckDate());返回值是怎么确定升序降序的,返回值不是有可能为1,-1,0吗,是怎么确定升序或是降序的 展开
展开全部
我印象中如果不重写compareTo方法那返回值都是-1吧......
我一般都是实现Comparable接口,重写CompareTo方法就可以了。
至于降序升序,可以这样比较:
假如A的值大于B,你返回1。这样调用Collections.sort()方法就是升序
假如A的值大于B,你返回-1。这样调用Collections.sort()方法就是降序
一般比较的都是对象中一个具体的数值。不知道你的类的构造,不好给例子
我一般都是实现Comparable接口,重写CompareTo方法就可以了。
至于降序升序,可以这样比较:
假如A的值大于B,你返回1。这样调用Collections.sort()方法就是升序
假如A的值大于B,你返回-1。这样调用Collections.sort()方法就是降序
一般比较的都是对象中一个具体的数值。不知道你的类的构造,不好给例子
更多追问追答
追问
cd1.getCheckDate().compareTo(cd2.getCheckDate())返回值不是一会1,一会-1吗,到底什么时候升序什么时候降序呢
追答
怎么会?你用System.out.println(cd1.getCheckDate().compareTo(cd2.getCheckDate()))打印出结果看的吗?
展开全部
先举个例子
1 2 5 3 6 9 7
从大家的认知来看,上面的数字从小到大为
1 2 3 5 6 7 9
但是如果是一对的字符串或者对象呢?
那么就需要Comparator来自定义字符串或对象的比较方法,来排序了。
如
aa bb cc cc ab
如果你在Comparator中自定义c是大于b b是大于a的 那么
降序排序就是
aa ab bb cc cc
对于 public int compare(Object arg0, Object arg1)的理解
如果放回1 说明arg0 > arg1 如 2 1
如果放回0 说明arg0 = arg1 如 cc cc
如果放回-1 说明arg0 < arg1 如 6 7
所以如果你希望
1 2 5 3 6 9 7 的排序变成 离5最接近的先输出那么如下代码(降序)
public int compare(Object arg0, Object arg1) {
Integer cd1 = (Integer)arg0;
Integer cd2 = (Integer)arg1;
if (Math.abs(5-cd1)-Math.abs(5-cd2)>0)
return 1;
if (Math.abs(5-cd1)-Math.abs(5-cd2)==0)
return 0;
if (Math.abs(5-cd1)-Math.abs(5-cd2)<0)
return -1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-02-28
展开全部
String 是字符串,它的比较用compareTo方法,它从第一位开始比较,如果遇到不同的字符,则马上返回这两个字符的ascii值差值..返回值是int类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
参数o1 o2 升序
参数o2 o1 降序
public int compare(String o1, String o2) {
//升序
return o1.compareTo(o2);
}
public int compare(String o1, String o2) {
//降序
return o2.compareTo(o1);
}
这个是不是稍微好理解一点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询