ArrayList的sort方法重写:

当ArrayList中存放的为含有多个成员变量的数据类型时,在进行sort排序时要重写比较方法,一般都写在这个数据类型类的内部如:

package 算法竞赛入门到精通;
import java.util.*;
public class 电视节目 {
    static ArrayList<node> a=new ArrayList<node>();
    public static void main(String args[])
    {
        Scanner sc=new Scanner(System.in);
        node n1=new node();
        n1.end=5;
        node n2=new node();
        n2.end=6;
        node n3=new node();
        n3.end=3;
        node n4=new node();
        n4.end=1;
        node n5=new node();
        n5.end=7;
        a.add(n1);
        a.add(n2);
        a.add(n3);
        a.add(n4);
        a.add(n5);//在a中加入node类型的五个数
        for(int i=0;i<a.size();i++)//输出未排序的
        {
            System.out.println(a.get(i).end+"  ");
        }
        a.sort(null);//排序
        for(int i=0;i<a.size();i++)//输出排序之后的
        {
            System.out.println(a.get(i).end+"  ");
        }
    }
    static class node implements Comparable<node>
    {
        int start;
        int end;
        node(){}
        @Override
        public int compareTo(node n) {//重写比较方法
            // TODO Auto-generated method stub
            int i=end-n.end;
            if(i<0)
                    return -1;
            else if(i>0)
                return 1;
            return 0;
        };

    }

}
02-01 06:52