概述
展开全部
先举个例子
1 2 5 3 6 9 7
从大家的认知来看,上面的数字从小到大为
1 2 3 5 6 7 9
但是如果是一对的字符串或者对象呢?
那么就需要32313133353236313431303231363533e78988e69d8331333335306334Comparator来自定义字符串或对象的比较方法,来排序了。
如
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;
}
最后
以上就是动人香烟为你收集整理的java compare排序_java compare 降序/升序怎么确定的全部内容,希望文章能够帮你解决java compare排序_java compare 降序/升序怎么确定所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复