黑马程序员技术交流社区
标题:
问个TreeSet和HashSet的问题
[打印本页]
作者:
梵天的梦
时间:
2014-2-13 19:28
标题:
问个TreeSet和HashSet的问题
TreeSet为什么能排序而HashSet不能,他俩之间还有什么区别?
作者:
itpower
时间:
2014-2-13 20:08
TreeSet 是二差树实现的,Treeset中的数据是自动排好序的,不允许放入null值
HashSet 是哈希表实现的,HashSet中的数据是无序的,可以放入null,但只能放入一个null,两者中的值都不能重复,就如数据库中唯一约束
HashSet要求放入的对象必须实现HashCode()方法,放入的对象,是以hashcode码作为标识的,而具有相同内容的String对象,hashcode是一样,所以放入的内容不能重复。但是同一个类的对象可以放入不同的实
作者:
奋斗的小胖子
时间:
2014-2-13 20:44
本帖最后由 奋斗的小胖子 于 2014-2-13 20:46 编辑
因为TreeSet可以用compareTo或者compare方法去排序的。。。。TreeSet 数据结构是二叉树.排序.是不同步的。。。。
HashSet 数据结构是哈希表.无序,是不同步的。。。。
作者:
黄志成
时间:
2014-2-13 21:22
TreeSet会调用对象的compareTo方法进行排序,存入TreeSet的对象需要实现Compareble接口,然后覆盖campareTo方法。 比如String,所以String对象存入TreeSet后会自动排序。
HashSet也会对存入的对象排序,是根据对象的hash值来排序的,多以在我们看来是无序的。
作者:
↑↓ME→←
时间:
2014-2-13 21:33
TreeSet底层是二叉树,本身就有顺序,而HashSet底层是哈希表,无序的!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2