Java-内置类比较器-Comparable

本文介绍了Java中实现排序的实体类如何实现Comparable接口,重点解析compareTo(Object obj)方法的返回值逻辑,并探讨了内置类型如int、float、char以及String、Date等如何进行比较。同时,文章还提及了自定义Comparator比较器的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入

参考文献:Comparable和Comparator

“排序”的实体类都实现了java.lang.Comparable接口,Comparable接口中只有一个方法

public int compareTo(Object obj);

返回值

0   表示 this==obj

正数  表示   this >  obj

负数  表示 this <obj

实现了Comparable接口的类通过实现CompareTo方法从而确定该类对象的排序方式。

package  java.lang;
import  java.util.*;
public  interface  Comparable<T>{   
           public  int  compareTo(T o);


内置类型int,float,char.等等八大类型的都实现了Comparable接口,从而重写了Comparator方法.



1.整数、小数Integer,Float,Double直接比较基本数据类型的大小

2.字符类型:比较的unicode码只差

3.字符串:

1)、如果其中一个是另外一个起始开始的子串,返回长度之差

2)、否则返回第一个不相等的unicode码只差

4、java.util.Date:根据日期的长整形数比较,就是将日期转换成长整形,然后进行整数的比较


图为String重写的Comparator方法


实现一个Comparator比较器

二者的比较

两种方法各有优劣, 用Comparable 简单, 只要实现Comparable 接口的对象直接就成为一个可以比较的对象,
但是需要修改源代码, 用Comparator 的好处是不需要修改源代码, 而是另外实现一个比较器, 当某个自定义
的对象需要作比较的时候,把比较器和对象一起传递过去就可以比大小了, 并且在Comparator 里面用户可以自
己实现复杂的可以通用的逻辑,使其可以匹配一些比较简单的对象,那样就可以节省很多重复劳动了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值