s1比s2小的话
返回负数
s1排在s2前面
那第一个s2comparetos1
s2比s1大
返回正数不是应该s2在s1后面的吗
我知道理解错误但是实在搞不明白
大神帮帮我吧
http://www.cnblogs.com/gw811/archive/2012/10/04/2711746.html
比如其中有
33 // Insertion sort on smallest arrays
34 if (length < INSERTIONSORT_THRESHOLD) {
35 for (int i = low; i < high; i++)
36 for (int j = i; j > low &&
37 ((Comparable) dest[j - 1]).compareTo(dest[j]) > 0; j--)
38 swap(dest, j, j - 1);
39 return;
40 }
如果第一个比第二个大,那么就交换。可见排序后小的在前面,大的在后面。
如果你是java源代码的作者,你把 >0 写成 <0,那么规则就反过来了。这只是一种约定而已。
倒序还是正序取决于排序算法,因为java的排序算法是写好的,所以就是这么规定的。
如果你自己写一个排序算法, 完全可以把compareTo的结果反过来。
compareTo从首字母开始比较,直到找到两个不同的字母,返回字母的编码差值(前一个对象s1减去s2对应的字母编码
例如:“a".compareTo("b")的结果就是返回-1)
如果长度不等而长度较短占据长度较长的字符串的前几位,例如“abcd” 和“ab” 那么久返回字符串的长度之差。
“abcd”.compareTo("ab") 返回2
所以这边不要记什么倒序排列还是正序排列吧?!