import java.util.*;
class ArrayListTest
{
public static void printElements(Collection c)
{
Iterator it=c.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
public static void main(String[] args)
{
Student s1=new Student(2,"zhangsan");
Student s2=new Student(1,"lisi");
Student s3=new Student(3,"wangwu");
ArrayList<Object> al=new ArrayList<Object>();
 al.add(s1);
 al.add(s2);
 al.add(s3);
 Collections.sort(al);
 printElements(al);
}
}

class Student implements Comparable
{
int num;
String name;
Student(int num,String name)
{
 this.num=num;
 this.name=name;
}
public int CompareTo(Object o)
{
Student s=(Student)o;
return num>s.num?1:(num==s.num?0:-1);
}
public String toString()
{
return num+":"+name;
}
}

解决方案 »

  1.   

    public int CompareTo(Object o)
    {
    Student s=(Student)o;
    return num>s.num?1:(num==s.num?0:-1);
    }CompareTo --->  compareTo
      

  2.   

    ArrayList<Object> al=new ArrayList<Object>();--->ArrayList<Student> al=new ArrayList<Student>();
      

  3.   

    修改上面2处以后,运行结果为:1:lisi
    2:zhangsan
    3:wangwu
      

  4.   

    在eclipse中,更改了上面错误,然后发现一个感叹号在这句上:
     Collections.sort(al);
    错误说明为:
    类型安全:类型 Collections 的通用方法 sort(List<T>)的未经检查的调用 
     sort(List<Student>)
    请问怎么修改啊?
    除了自动修改用的
    @SuppressWarnings("unchecked")
      

  5.   

    ArrayList<Object> al=new ArrayList<Object>();
    --->
    ArrayList<Student> al=new ArrayList<Student>();
    or
    ArrayList al=new ArrayList();
      

  6.   

    Collections.sort(al,null);
    默认情况下是按顺序排序的,也就是等于null,
    也可以加comparator比较器按你想要的顺序进行排序