1.this和s都是指TreeSet集合中的一个对象,具体指的是哪个对象,我在你的第二个问题一起回答你。
2.compareTo()方法实现的就是“你规定的比较方式",比如你方法里面写的,先比较年龄,年龄大的放在前面,如果年龄相同,就比较名字。其实内部是一个选择排序,大的往前放,小的放后面。而你有说的this和s指的是哪个,只能举例子跟你说了。
例子:
集合中有15,14,16,17,11五个数字,
第一次比较:拿第一个存进去的15跟14比较,此时15是this,14是s,比较结束之后,15比14大,那就把15和14互换位置。
第二次比较:15和16比较,这时15是this,14是s, 比较之后,15比16小,不用换位置。
第三次比较:16和17比较,这时16是this, 17是s,比较之后,16比17小,不用换位置。
...依次类推,最大的值就放被放到最后面了,然后再循环换...其实就是选择排序,如果你选择排序不懂的话,再好好看看,这里的this和s并不是固定的。
另外,方法返回的int值1,-1,0,其实就是用数字的方式告诉计算机谁大谁小。
|