comparable的compareTo( )方法

就是说,如果你想对自己写的类排序,你就把自己写的这个类实现Comparable接口,然后写一个comparaTo方法来规定这个类的对象排序的顺序。
在这个方法中,如果返回-1,则当前对象排前面,返回1,就排后面         ,0,就相等。例如:
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,顺序跟我放入的顺序是相反的。就是这样实现排序的。

你可能感兴趣的:(object,String,list,Class,import)