stu.getId() 为什么不是 创建Stu时的 01011,01021,01051,01012 结果却是 521,522,529,553呢
在方法public long getId中的return确实是 id啊
原码如下
/*
* Java P264页
*/
import java.util.*;
public class UpdateStu implements Comparable<Object> {
String name;
long id;
public UpdateStu(String name, long id) {
this.id = id;
this.name = name;
}
//重写Comparable接口中的compareTo方法
public int compareTo(Object o) {
UpdateStu upstu = (UpdateStu) o;
int result = id > upstu.id ? 1 : (id == upstu.id ? 0 : -1);
return result;
}
//get set
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//主函数
public static void main(String[] args) {
//创建stu对象
UpdateStu stu1 = new UpdateStu("李同学", 01011);
UpdateStu stu2 = new UpdateStu("陈同学", 01021);
UpdateStu stu3 = new UpdateStu("王同学", 01051);
UpdateStu stu4 = new UpdateStu("马同学", 01012);
TreeSet<UpdateStu> tree = new TreeSet<>();
//向集合中添加对象
tree.add(stu1);
tree.add(stu2);
tree.add(stu3);
tree.add(stu4);
Iterator<UpdateStu> it = tree.iterator();
//遍历集合
System.out.println("Set集合中的所有元素:");
while (it.hasNext()) {
UpdateStu stu = (UpdateStu) it.next();
System.out.println(stu.getId() + " " + stu.getName());
}
}
}
//运行结果是:
Set集合中的所有元素:
521 李同学
522 马同学
529 陈同学
553 王同学