可比较,比较器在java中返回负数,正数,零

时间:2013-11-06 10:22:37

标签: java collections

我需要知道compareTo(...)方法如何在内部工作。根据结果​​,它会交换值吗?

Condition:

1. If obj1 is less than object2 will return negative.
2. If obj1 is greater than object2 will return positive.
3. If obj1 is equal to object2 will return zero.

compareTo(...)方法如何根据条件在内部工作

@Override
public int compareTo(DVDInfo o) {       
    return title.compareTo(o.title); // for title sort      
}

3 个答案:

答案 0 :(得分:0)

查看String.compareTo()的{​​{3}}。如果您有其他语言环境而不是英语,则最好使用java.text.Collator进行字符串比较。

答案 1 :(得分:0)

compareTo方法将两个对象相互比较,并返回一个值,指示两个对象的顺序。

String s1 = "abc";
String s2 = "bcd";
s1.compareTo(s2); // returns negative value
s2.compareTo(s1); // returns positive value

没有交换对象或类似的东西,返回的值只是元素顺序的指示。在字符串上,这个顺序是按字母顺序排列的(即“abc”按字母顺序排在“bcd”之前)。

如果您需要对字符串集合进行排序,请使用Collections.sort()。此方法将使用字符串compareTo方法来确定元素的顺序。

答案 2 :(得分:0)

不,不,ELSE交换价值!例如,当您调用Arrays.sort时,Arrays.sort内的代码会执行所使用的任何排序算法所需的所有交换。 compareTo方法只是告诉它如何决定是否需要交换东西。根据{{​​1}}是否返回负数,零或正数; compareTo方法可以解决如何重新排序数组元素的问题。当然,要做到这一点,它最终会多次调用sort