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; }; } }