我也是今天刚看到这个关于TreeSet的课程,里面关于毕老师讲的重写compareTo方法这一块,按照他讲的,还是这样写代码比较好。你的代码只比较了年纪,你代码里面同样年纪20的“jack”“jimmy”,名字不同,也不是相同元素,结果打印结果少了一个,所以当对象元素有相同的age时,还要再比较name是否相同,这样才能彻保证打印结果无重复。
- public int compareTo(Object obj) {
- Student st=(Student)obj;
- int temp=this.age-p.age ;//设置一个中间变量
- return temp==0?this.name.compareTo(p.name):temp;
- }
复制代码 |