使用Comparable接口自定义排序

Comparable接口用于强行对实现它的每个类的对象进行排序。在实现该接口的类中,必须实现compareTo()方法,用于指定排序规则。

Comparable的声明:

public class A implements Comparable<A>{}

在实现compareTo()方法后,若将对象保存到列表中,可通过执行Collections.sort()方法进行自动排序;若保存到数组中,可以通过执行Arrays.sort()方法进行自动排序。

示例代码如下:

public class Man implements Comparable<Man>{                //定义类Man,并实现Comarable接口

    private int num;

    private String name;

    private int age;

    public Man(int num,String name,int age){                //对象的构造方法
        this.num=num;

        this.name=name;

        this.age=age;

}

    public int compareTo(Man o){                            //实现compareTo()方法
        if(num>o.num){

            return 1;

}        else if(num<o.num){

            return -1;

}

        return 0;

}

    public String toString(){                                    //重写toString()方法
        StringBuilder sb=new StringBuilder();

        sb.append("运动员的号码是:"+num+"\t");

        sb.append("运动员的名字是:"+name+"\t");

        sb.append("运动员的年龄是:"+age);

        return sb.toString();

}

}

import java.util.*;

public class Test{

    public static void main(String[] args){

        List<Man> list=new ArrayList<Man>();

        list.add(new Man(7,"C罗",33));

        list.add(new Man(10,"梅西",30));

        list.add(new Man(1,"布冯",40));

        System.out.println("排序前:");

        for(Man o:list){

            System.out.println(o);

}

        System.out.println("排序后:");

        Collections.sort(list);                            //执行自动排序

        for(Man o:list){

            System.out.println(o);

}

}

}

总结:

Comparable接口实现自动排序:

1.定义类实现comparable接口

public class A implements Comaprable<A>{}


2.类中实现compareTo()方法,定义排序规则

public int compareTo(A o){};


3.在Test中执行自动排序

Collections.sort();

或    Arrays.sort();

阅读更多

没有更多推荐了,返回首页