0

我需要知道该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      
}
4

3 回答 3

0

查看javadocString.compareTo(). 如果您有除英语以外的其他语言环境,则最好使用java.text.Collator字符串比较。

于 2013-11-06T10:31:03.560 回答
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方法来确定元素的顺序。

于 2013-11-06T10:35:28.243 回答
0

不,不,其他东西会交换值!例如,当您调用 时Arrays.sort,其中的代码Arrays.sort会执行它使用的任何排序算法所需的所有交换。该compareTo方法只是告诉它如何决定是否需要交换东西。基于compareTo返回负数、零或正数;该sort方法解决了如何重新排序数组的元素。当然,要做到这一点,它最终会调用compareTo很多次。

于 2013-11-06T10:36:11.083 回答