Java 里的Comparator接口里的compare方法怎么确定升降序的?

怎么确定升降序的?根据返回值还是什么?
比如接口里的方法 public int compar(Object object1, Object object2){
String a = (String) object1;
String b = (String) object2;
return a>b;
}
此时是升序,还是降序?怎么确定的?

第1个回答  推荐于2018-04-24
不是要用return a.compareTo(b);进行比较的吗?compareTo()方法是在String类下面的

Compares two strings lexicographically. The comparison is based on the Unicode
value of each character in the strings. The character sequence represented by
this String object is compared lexicographically to the character
sequence represented by the argument string. The result is a negative integer if
this String object lexicographically precedes the argument string.
The result is a positive integer if this String object
lexicographically follows the argument string. The result is zero if the strings
are equal; compareTo returns 0 exactly when the equals(Object) method would return true.本回答被网友采纳
第2个回答  推荐于2016-06-26
sort会自动调用哪个compare方法,如果他没有实现,则无法排序,也就是顺序是混乱的。

另一方面,你指定了comp方法,则系统在每次需要比较时,都把2个对象传到里面,注意compareabel的参数是 (Object o1,Object o2)

也就是默认是Object类型的,里面怎么比较和类型判断是程序员的事情

当然你也可以启用泛型,指定compare的对象类型。本回答被提问者采纳
第3个回答  2015-11-04
自定义排序方法

java中Comparator接口,为什么o1.length()-o2.length()就是升序,o2.len...
你实现了用Comparator这个接口的时候,就有compare这个方法,JDK会在比较的时候自动调用这个方法,当该方法返回正数时,以第一个参数大于第二个,反之亦然。这里只是用了2个String参数的长度来决定哪个比较大,你也可以自己来实现比较的逻辑。比如传入的2个参数的第一个字母比较之类的。javase的问题多看书。

java compare 降序\/升序怎么确定
我一般都是实现Comparable接口,重写CompareTo方法就可以了。至于降序升序,可以这样比较:假如A的值大于B,你返回1。这样调用Collections.sort()方法就是升序 假如A的值大于B,你返回-1。这样调用Collections.sort()方法就是降序 一般比较的都是对象中一个具体的数值。不知道你的类的构造,不好给例子 ...

java中comparator和compare它们两个是按照从大到小排序的还是从小到大...
comparator是个比较器接口,实现这个接口可以自己定义一个排序方式 compare是一个方法,你要定义一个排序必须重写这个方法 有很多比较器,一般默认字典顺序

java comparator 默认是升序么
comparator 不是接口吗,可以implement之后重写它的compare(T o1, T o2)方法实现降序啊(compare方法返回的是一个int型的数值,从小于0,等于0到等于0依次表示的是o1小于o2,o1等于o2,o1大于o2,所以可以反写逻辑实现降序的,以下是一个按年龄降序打印的例子)package hahalan.lianxi;import java.util....

Java里的Comparator这两个接口的排序该如何去很好的理解able和Compar...
Comparator是说你自己可以创造一个比较器,可以使用Arrays.sort(array,comparator) 这么就按照你的想法排序了。 这里面comparator你当然可以写成一个匿名类了,里面需要实现方法compare()。而Comparable 直接就提供了eaqul比较 因为你实现该类的时候会实现一个方法compareTo() 。一个意思 ...

java怎么将List里面数据排序
1. 创建一个学生实体类,该类包含姓名和年龄属性。2. 在实体类中实现Comparable接口,并重写compareTo方法。3. 在compareTo方法中,首先按照姓名升序比较,如果姓名相同,则按照年龄升序比较。4. 使用List类的sort(Comparator c)方法或Collections工具类的sort(List list)方法对列表进行排序。或者:1. ...

java compareto 是怎么比较的
java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值。如果两个字符串首字母不同,则该方法返回首字母的asc码的差值 参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值,如果两个字符串不一样长,可以参与比较的字符又完全一样,...

compare方法中的o1 o2
第1个问号 o1\/o2是T类型、即是表示泛型!相当于指所有类型.第2个问号,是的.第3个问号,输出是正序、还是倒序,看compare(...)当中的比较和返回值,10和20比较,返回-1正序、返回1倒序(0是相等,这时不会出现),第4个问号,见第3个问号的回答.

java中comparator 接口怎么比较字符串?
字符串已经实现了Comparable接口,所以在Comparator接口的实现类中只要调用String的compareTo(String str)方法就可以了。

请教:JAVA中,comparator接口如何对double型数据进行排序。
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));} } ...

相似回答