本帖最后由 唐杨 于 2012-8-22 19:08 编辑
代码是有问题的,而且最后还少了两个 大括号.} }
你的compareTo方法写的有问题.
所以导致你的程序运行结果,虽然age不同, 只有一个
lis1...1
@Override
public int compareTo(Object obj)
{
if(!(obj instanceof student))
throw new RuntimeException("非学生对象");
student s = (student)obj;
if(this.age > age) //这里应该是this.age > s.getAge() ; (下边的是 this.age == s.getAge()) s.age才是真正的传入的参数的年龄
return 1;
else if(this.age == age) //这里 this.age 和 age 其实是同一个变量,所以永远相等
return 0;
else
return -1;
} |