黑马程序员技术交流社区

标题: TreeSet集合排序问题 [打印本页]

作者: 敲敲乐z    时间: 2016-8-12 21:24
标题: TreeSet集合排序问题
TreeSet的构造函数,可以传一个参数,这个参数是Comparator的匿名子对象,但是这个匿名子对象里面要重写一个比较方法,方法里面的参数代表什么意思?这一点不是很懂!
作者: life写实    时间: 2016-8-12 22:03
兄弟,我也不懂啊,楼下有大神嘛
作者: 13411939415    时间: 2016-8-12 22:17
方法里面的参数代表要存储进集合的元素
作者: Maroon    时间: 2016-8-12 23:02
里面的参数是你集合中传入的参数,Comparator是按比较器顺序排序,也就是说是你自己去定义比较的方法,你可以实现TreeSet的自然顺序无法达成的排序方式,比如说可以实现降序,或者是当两个相等的时候,返回值不为0,将返回值设置成1或者-1,因为返回值为0的时候将不会往集合中添加该元素,而将返回值设置为1或者-1的时候,仍会往集合中添加元素,因为TreeSet底层是二叉树结构,-1代表放左边,1代表放右边,这样就可以实现TreeSet中也不去掉重复的元素
再比方说传入的一个学生对象,里面有姓名,年龄,成绩等属性,通过比较器,你可以实现类似于咱们在使用Excel的时候那种排序功能,比如你想要将成绩作为主要的排序关键字,再将姓名作为第二关键字排序 比如这样= = 感觉这样讲我会把你绕晕...





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2