本帖最后由 王小涛 于 2012-9-10 00:29 编辑
import java.util.*;
class Test
{
public static void diedai(Collection c)//括号里要加泛型哦: (Collection<Student> c),指明将要迭代的是哪种类型的集合
{
Iterator i=c.iterator();//同样这里也要加上泛型 Iterator<Student> i=c.iterator(); 跟上面参数类型一致
while(i.hasNext())
{
System.out.println(i.next());
}
}
public static void main(String[] args)
{
Student s1=new Student(2,"zhangsan");
Student s2=new Student(3,"lisi");
Student s3=new Student(1,"wangwu");
ArrayList<Object> a=new ArrayList<Object>();//把Object换成 Student ,因为这个集合我们只用来装学生对象,不装其他。。。
a.add(s1);
a.add(s2);
a.add(s3);
Collections.sort(a);// 这里查找不到符号,是因为你没在程序开头静态导入Collections工具类的静态方法sort,或者补上全名 java.util.Collections.sort(a);
diedai(a);
}
}
class Student implements Comparable<Student>//在Comparable后面也应注明泛型,
{
int num;
String name;
Student(int num,String name)
{
this.num=num;
this.name=name;
}
public int compareTo(Object o)//这里覆盖compareTo方法时,应指明是比较哪种类型,所以参数列表应改为(Student s)
{
Student s=(Student)o;//使用泛型后,这句强制向下转型就多余了,应删掉
return num>s.num ? 1 : (num==s.num ? 0 : -1);
}
public String toString()
{
return "num="+num+","+"name="+name;
}
}
|
|