java中compareTo()的返回值是什么

如题所述

public int compareTo(String anotherString)

按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象在参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只有在方法 equals(Object) 返回 true 时才返回 0。

这是字典排序的定义。如果这两个字符串不同,则要么它们在某个索引处具有不同的字符,该索引对二者均为有效索引,要么它们的长度不同,或者同时具备上述两种情况。如果它们在一个或多个索引位置上具有不同的字符,假设 k 是这类索引的最小值;则按照 < 运算符确定的那个字符串在位置 k 上具有较小的值,其字典顺序在其他字符串之前。这种情况下,compareTo 返回这两个字符串在位置 k 处的两个不同的 char 值,即值:

this.charAt(k)-anotherString.charAt(k)

如果它们没有不同的索引位置,则较短字符串在字典顺序上位于较长字符串的前面。这种情况下,compareTo 返回这两个字符串长度的不同,即值:

this.length()-anotherString.length()

指定者:
接口 Comparable<String> 中的 compareTo

参数:
anotherString - 要比较的 String。
返回:
如果参数字符串等于此字符串,则返回 0 值;如果按字典顺序此字符串小于字符串参数,则返回一个小于 0 的值;如果按字典顺序此字符串大于字符串参数,则返回一个大于 0 的值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-26
compareTo()是两个串对象比较大小,返回一个整数值,如果调用串对象大,返回正整数,反之,返回负整数。相等则返回0。返回的值是两个串首次出现不同字符的ASCII的差值。
第2个回答  推荐于2017-09-07
首先,我说一下什么是compateTo
compareTo(Object
o)方法是java.lang.Comparable<T>接口中的方法,当需要对某个类的对象进行排序时,该类需要实现
Comparable<T>接口的,必须重写public int compareTo(T
o)方法,比如MapReduce中Map函数和Reduce函数处理的
<key,value>,其中需要根据key对键值对进行排序,所以,key实现了WritableComparable<T>
接口,实现这个接口可同时用于序列化和反序列化。WritableComparable<T>接口(用于序列化和反序列化)是
Writable接口和Comparable<T>接口的组合;
其次,看一个例子
@Override
public int compareTo(Object o) {
if(this ==o){
return 0;
}
else if (o!=null && o instanceof User) {
User u = (User) o;
if(id<=u.id){
return -1;
}else{
return 1;
}
}else{
return -1;
}

当两个对象进行比较时,返回0代表它们相等;返回值<0(如例子中返回-1)代表this排在被比较对象之前;反之代表在被比较对象之后
第3个回答  2011-12-26
比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
返回整数,1,-1,0;返回1表示大于,返回-1表示小于,返回0表示相等。本回答被网友采纳
第4个回答  2011-12-26
返回的是一个整数,当两个对象对象相等时返回0,不等时返回-1或者1
相似回答