Java 自定义比较与排序方法——Comparable与Comparator的简单使用

本文详细介绍了Java中基本数据类型的比较、自带compareTo()方法的类、自定义类如何实现Comparable接口进行比较,以及在无法修改源码时如何使用Comparator接口进行排序。还探讨了Comparable和Comparator的区别,并提到了JDK1.8的新方法。
摘要由CSDN通过智能技术生成

基本数据类型的比较

除了boolean型,其他七种基本数据类型都是可以使用小于号<、大于号>等比较大小的。比如:

public class Try {
   

    public static void main(String[] args) {
   
        System.out.println(1 < 2);
        System.out.println(23.421 > 100.5);
        System.out.println(23.421f <= 100.5f);
    }
}

输出结果为:

true
false
true

一些类自带的比较方法compareTo()

Java中有些类自带比较方法compareTo(). compareTo()方法的有且只有一个参数,该参数必须和使用该方法的类是同类的。以包装类和字符串类为例:

public class Try {
   

    public static void main(String[] args) {
   
        System.out.println(new Integer(1).compareTo(new Integer(2)));
        System.out.println(new Double(100.5).compareTo(new Double(23.421)));
        System.out.println(new Float(100.5).compareTo(new Float(100.5)));
        System.out.println(new Long(10).compareTo(new Long(10)));
        System.out.println("Java".compareTo("Java"));
        System.out.println("Java".compareTo("JavaScript"));
        System.out.println("Java".compareTo("Jav"));
        System.out.println("Java".compareTo("Python"));
        System.out.println("Java".compareTo("C++"));
        System.out.println("Java".compareTo("JSP"));
    }
}

输出结果为:

-1
1
0
0
0
-6
1
-6
7
14

解释一下这里的输出:

  • 对于除Boolean之外的七种包装类,他们的输出结果只可能有三种:-1/1/0,分别代表小于、大于和等于。
  • 对于字符串类来说,它的compareTo()方法比较复杂:
    对于A.compareTo(B), 如果两个字符串完全相同,那么返回0;否则如果A是B的前缀,那么返回值是负数,绝对值是二者长度之差;否则如果B是A的前缀,则返回值是正数,绝对值也是二者
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值