java Comparator中的返回值和排序有什么关系啊,求解释!!!!!

如题所述

负数代表左值小于右值,排在上面
正数代表左值大于右值,排在下面
0代表左值等于右值,排在上面
可以这样理解:排序就是比较谁大谁小,将小的放在前面,大的放在后面。例如当返回负数的时候,表明第一个数应该排在第二个数的上面。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-05-13
该接口用于对象与对象间的比较,返回值意味着这两对象之间的大小关系。
-1代表前者小,0代表两者相等,1代表前者大。本回答被网友采纳
第2个回答  2018-02-01
一个简单的示例。随机生成长度为20的数值在100以内的数组。输出结果在最下边。
Random random = new Random();
List<Integer> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
list.add(random.nextInt(100));
}

Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (o1 > o2) {
return 1;
}
if (o1 < o2) {
return -1;
}
return 0;
}
});

System.out.println(Arrays.toString(list.toArray()));
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (o1 < o2) {
return 1;
}
if (o1 > o2) {
return -1;
}

return 0;
}
});

System.out.println(Arrays.toString(list.toArray()));
// 输出结果:
// [6, 9, 24, 28, 34, 45, 46, 49, 54, 56, 58, 58, 59, 60, 71, 74, 85, 91, 91, 96]
// [96, 91, 91, 85, 74, 71, 60, 59, 58, 58, 56, 54, 49, 46, 45, 34, 28, 24, 9, 6]

java Comparator中的返回值和排序有什么关系啊,求解释!!!
可以这样理解:排序就是比较谁大谁小,将小的放在前面,大的放在后面。例如当返回负数的时候,表明第一个数应该排在第二个数的上面。

请教:JAVA中,comparator接口如何对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)...

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

详解Comparable和Comparator
实现Comparator接口的类可以创建一个比较器,通过该比较器对类进行排序。Comparator接口包含一个compare方法,用于比较两个对象。返回值同样是int类型,有三种情况:如果第一个对象大于第二个,返回正数;如果相等,返回零;如果小于第二个,返回负数。在实际应用中,Comparable接口通常用于类内部的排序需求,而...

来吧,一文彻底搞懂Java中的Comparable和Comparator
Comparator接口相较于Comparable接口,Comparator接口更加灵活。它主要提供了两个方法:compare()和equals()。compare()方法用于比较两个对象的顺序,返回值决定排序结果。而equals()方法则用于判断传入的参数是否匹配Comparator的设置。利用Comparator实现不同属性的排序示例中展示了如何创建一个Comparator,通过传入...

Comparable和Comparator的区别
当使用`Collections`类的`sort`方法对集合进行排序时,如果对象实现了`Comparable`接口,那么`Collections.sort`将利用对象内部定义的`compareTo`方法来进行排序。`compareTo`方法的返回值类型为`int`,根据比较结果返回正数、零或负数,表示对象之间的相对顺序。例如,以下代码展示了`compareTo`方法在比较不...

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

java中comparable接口与comparator接口的区别,&&请求代码示例,非常谢谢...
前面的数组或集合按照后面的比较规则来排序。比较规则是Comparator接口类型的对象,可创建类实现该接口,重写compare方法,在方法体自定义比较规则,价格重量点击率都可以,对参数中传入的两个对象比较,根据返回值o1>o1默认升序排列 Comparable接口在java.lang包下,实现compareTo方法对对象排序,该方法只有一个...

Java中的compareTo()函数是怎么用的?
referenceName -- 可以是一个 Byte, Double, Integer, Float, Long 或 Short 类型的参数。返回值 1、如果指定的数与参数相等返回0。2、如果指定的数小于参数返回 -1。3、如果指定的数大于参数返回 1。Java中的compareTo()函数用法比较另一个函数字符:public int compareTo(String anotherString)按...

java Comparable和Comparator理解
①首先数组中第一个是age=4的实例,然后进来一个age=2的,这个时候调用了年龄4的Compareto方法,把年龄2传进来了(所以getAge返回的是2),这样一比较,发现年龄2小于4,所以2放前边;②③接着年龄1进来了,先跟4比较,应该放在前边,但是前边有2,还得比一下,又得往前放;③④最后年龄3进来,...

相似回答