String中comparaTo()和comparable接口中comparaTo()的区别

都在在java.lang 包下

java.lang.String中comparaTo()

  1. 按字典顺序比较两个字符串。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。
  2. 如果没有字符不同的索引位置,返回这两个字符串长度的差;
  3. 如果这两个字符串不同,且某个索引处的字符不同,同时长度不同(例如:asdd和abdche,索引1和3处不同);
    
    public class ComparaTo {
    	public static void main(String[] args){
    		String x1="a";
    		String x2="c";
    		//a的ASCII码值比c小2,所以输出-2
    		System.out.println(x1.compareTo(x2));
    		
    		String x3="abc";
    		String x4="ab";
    		//abc的长度比ab的长度大1,所以输出1
    		System.out.println(x3.compareTo(x4));
    		
    		String x5="cat";
    		String x6="china";
    		//cat和china在下标索引为1的地方出现了不同,a的ASCII码值比h小7,所以输出-7
    		System.out.println(x5.compareTo(x6));
    		
    		String x7="CHINA";
    		String x8="china";
    		//忽略大小写区别,所以输出为0
    		System.out.println(x7.compareToIgnoreCase(x8));
    	}
    }
    

    java.lang.comparable接口中comparaTo()

    Comparable 可以让实现它的类的对象进行比较,具体的比较规则是按照 compareTo 方法中的规则进行。这种顺序称为 自然顺序

    compareTo 方法的返回值有三种情况:

  • e1.compareTo(e2) > 0 即 e1 > e2
  • e1.compareTo(e2) = 0 即 e1 = e2
  • e1.compareTo(e2) < 0 即 e1 < e2
  • 注意:

    1.由于 null 不是一个类,也不是一个对象,因此在重写 compareTo 方法时应该注意 e.compareTo(null) 的情况,即使 e.equals(null) 返回 false,compareTo 方法也应该主动抛出一个空指针异常 NullPointerException。

    2.Comparable 实现类重写 compareTo 方法时一般要求 e1.compareTo(e2) == 0 的结果要和 e1.equals(e2) 一致。这样将来使用 SortedSet 等根据类的自然排序进行排序的集合容器时可以保证保存的数据的顺序和想象中一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值