黑马程序员技术交流社区

标题: 集合中的问题 [打印本页]

作者: 卢乾荣    时间: 2015-4-3 23:11
标题: 集合中的问题
在TreeSet集合中它的比较方式是用二叉树的数据结构来决定的,我想问下TreeSet集合中是不是也有HashCode()方法,是不是也需要重写啊

作者: 关山明月    时间: 2015-4-4 00:36
TreeSet没有hashCode()方法,不过其父类中有,可以继承。一般不需要重写,因为TreeSet是二叉树结构,它判断元素是否相同依赖的是compareTo()方法,返回值为0即为相同。
作者: TanQiao    时间: 2015-4-4 10:02
当要用到hashCode(),和equals()这两个方法时,需要重写,比如说我们不仅把它放入TreeSet,还要把它放入hashSet的时候,但是单纯的放入TreeSet集合不需要重写
作者: hello_csu    时间: 2015-4-4 11:02
不需要的,因为Treeset是红黑树结构,它只是基于比较函数来构建树的结构。 是否重写函数你要根据他底层数据结构的运算存储方式来的。
作者: 卢乾荣    时间: 2015-4-5 19:26
Thank You ,明白了
作者: 大神在何方    时间: 2015-4-5 23:33
不一定。。按照实际情况
作者: 花独恋水    时间: 2015-4-6 07:58
不需要,他依靠的是元素自然排序(元素自身具有比较性)或者让集合具有比较性,和hashcode没关系




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