我需要知道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
}
答案 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
。