JAVA关于compareTo例子问题,菜鸟求大神解答!!!

2025-04-28 04:59:47
推荐回答(2个)
回答1:

1.  this.age 就是本类的age,per.age,就是参数的age,也就是下面添加进来的person类的age,比如 allSet.add(new Person("张三",30)) ; 第一语句,前面没有person类型不需要比较,allSet.add(new Person("李四",31)) ;此时,this.age  就是张三的age,per.age就是李四的age。
2.  Set allSet = new TreeSet() ; 使用person,说明我的set 集合只能存储person类型的数据,你往里面添加其他类型会报错。Set allSet :的只能存放String类型。
3.  自动调用,添加新的对象时候回自动调用 和前面的对象比较,从而确定存放顺序。

回答2:

1 当前对象的年龄和传入对象的年龄
2 因为是Person类实现Comparable接口。String类使用 Comparable

3 TreeSet 是通过TreeMap实现的,你看看TreeMap的代码就可以看到compareTo方法的调用