一、Comparable接口
1、Java提供了Comparable接口,其主要作用是用来排序,这个接口中定义了一个 compareTo(Obj obj) 方法,该方法返回了一个整数值,实现该接口的类必须实现重写该方法,然后实现了该接口类的对象就可以比较比大小了。
2、当一个对象调用该方法进行比较时,比如obj1.comparaTo(obj2),如果返回值是0则相等,返回值是正整数则obj1更大,返回值是负整数则obj2更大。
3、其中这些类实现了Comparable接口:BigDecimal,Character,Boolean,String,Data,Time等类。
4、那么接下来我们就用TreeSet类举个例子,我们知道TreeSet与HashSet使用hash算法决定储存位置不同,是采用红黑树的数据结构来储存结合元素,并且TreeSet类支持两种排序方法:自然排序和定制排序,其中自然排序就可以用来实现Comparable接口。
class T implements Comparable{
//我们用T类实现Comparable接口
int count;//定义一个实例变量
public T(int count){
//包含一个参数的构造器
this.count = count;}
@Override//重写toString方法
public String toString(){
return "SetMap.T[count:" + count + "]";}
@Override//重写equal方法
public boolean equals(Object obj){
if (this == obj){
return true;}
if (obj != null && obj.getClass() == T.class){
T t = (T) obj;
return t.count == this.count;}
return false;
}
@Override//重写compareTo比较方法
public int compareTo(Object obj) {
T t

本文介绍了Java中的Comparable和Comparator接口,它们主要用于排序。Comparable接口通过compareTo()方法实现对象的自然排序,常用于TreeSet和数据结构如二分搜索树、堆。Comparator接口则通过compare()方法进行定制排序,是函数式接口,可以使用Lambda表达式。在选择使用时,若类中频繁进行比较操作,推荐实现Comparable接口;若仅需临时或定制排序规则,建议使用Comparator。

868

被折叠的 条评论
为什么被折叠?



