comparable的compareTo( )方法

就是说,如果你想对自己写的类排序,你就把自己写的这个类实现Comparable接口,然后写一个comparaTo方法来规定这个类的对象排序的顺序。
在这个方法中,如果返回-1,则当前对象排前面,返回1,就排后面 ,0,就相等。compareTo就是比较两个值,如果前者大于后者,返回1,等于返回0,小于返回-1,我下面给出了例子.例如:
import java.util.*;

public class A {
    public static void main(String args[]) {
        Example e1 = new Example(), e2 = new Example(), e3 = new Example();
        e1.i = 1;
        e2.i = 2;
        e3.i = 3;
        List l = new ArrayList();
        l.add(e1);
        l.add(e2);
        l.add(e3);
        Collections.sort(l);
        for(int i = 0; i < l.size(); i++) {
            System.out.println(l.get(i));
        }
    }
}

class Example implements Comparable {
    int i;
    public int compareTo(Object o) {
        if (this.i > ((Example)o).i ) return -1;
        else if (this.i < ((Example)o).i ) return 1;
        else return 0;
    }
    
    public String toString() {
        return "Example" + this.i;
    }
}
Example是自定义写的类,里面就一个int成员i。我们就可以根据这个i的大小来排序。在compareTo方法中,我定义了如果i大,那么就返回-1,则该对象就跑到前面去了。当然,如果你想定义i大的应该往后排,那么你可以改变返回值,从-1改为1。就是说 ,if里面是你要比较的条件,你可以根据这个条件来返回-1,0,1来将符合条件的对象放到前面、后面或者是不变。
在main方法中,我新建了3个Example对象,里面的i是1,2,3。注意我放入的顺序,是e1,e2,e3,当我调用sort方法后,再看输出结果,可以看到是e3,e2,e1,顺序跟我放入的顺序是相反的。就是这样实现排序的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: compareto方法是Java编程语言中一个用于比较两个对象大小的方法,它通常用于实现Comparable接口。该方法返回一个整数,表示当前对象与另一个对象的大小关系。如果当前对象比另一个对象小,则返回负整数;如果它们相等,则返回零;如果当前对象比另一个对象大,则返回正整数。该方法的具体实现可以根据需要自行编写。 ### 回答2: compareto方法是在Java中常用的一个方法,它用于比较两个对象的大小。这个方法是在Comparable接口中定义的,因此只有实现Comparable接口的类才能使用这个方法compareto方法的返回值有三种情况:小于零表示调用的对象小于传入的对象,等于零表示两个对象相等,大于零表示调用的对象大于传入的对象。 compareto方法的具体实现因具体需求而异。一般来说,对于普通的对象,可以比较它们的某个属性值来判断大小关系,比如比较学生对象的学号、比较商品对象的价格等。在这种情况下,compareto方法需要在类中具体实现。 在具体实现compareto方法时,可以利用Java的内置比较器来简化逻辑。比如对于字符串对象,可以使用字符串的compareTo方法来比较两个字符串大小关系;对于整型、浮点型等基本数据类型的包装类对象,可以使用包装类的compareTo方法进行比较。 compareto方法的应用非常广泛。它可以用于对对象进行排序,例如在集合类中的排序操作时会用到compareto方法;它还可以用于判断对象的相等性,当compareto方法返回0时,可认为两个对象相等。compareto方法还可以用于建立对象的有序集合,例如在TreeSet和TreeMap中,它们底层根据对象的compareto方法来维护有序性。 总的来说,compareto方法是Java中一个非常有用的方法,它提供了一种比较对象大小的机制,可以应用于排序、判断相等性和建立有序集合等场景中。 ### 回答3: compareTo()方法是Java中的一个方法,用于比较两个对象的顺序。该方法属于Comparable接口的一部分,Comparable接口是Java中用于定义对象比较规则的接口。 在使用compareTo()方法时,需要保证被比较的对象是同一类型,否则会抛出ClassCastException异常。 compareTo()方法返回一个整数值,该值可以有三种情况: 1. 如果调用对象的值小于被比较对象的值,则返回负整数。 2. 如果调用对象的值大于被比较对象的值,则返回正整数。 3. 如果调用对象的值等于被比较对象的值,则返回0。 通过在自定义类中实现Comparable接口,重写compareTo()方法,我们可以根据对象的某个属性或者自定义的比较规则来比较对象的顺序。 当我们使用特定的排序算法进行排序时,通常会利用compareTo()方法来确定对象的顺序。例如,我们可以使用Arrays.sort()方法对数组进行排序,其中的排序依据就是compareTo()方法的返回值。 另外,compareTo()方法还可以用于实现对象的相等性判断。如果compareTo()方法返回0,则表示两个对象相等。我们可以在使用equals()方法前,先使用compareTo()方法进行比较,提高代码的效率。 总之,compareTo()方法是Java中用于比较对象顺序的方法,它的返回值有助于我们确定对象的相对顺序,并可以用于实现排序和相等性判断。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值