A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

set集合中的hashset和treeset有什么区别,排序的区别

8 个回复

倒序浏览
HashSet存入的元素和取出元素是位置是不一样的,HashSet是存储方式是无序的,而且数据不能重复
TreeSet存入元素默认按字典顺序排列,元素也不能重复
如果是存入对象的话:
HashSet是通过复写HashCode和equals来判断对象是否重复。
TreeSet是通过实现Comparable接口内的compareTo方法或者自定义比较器实现Compartor接口的compare方法来判断对象是否重复。

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报
kfcka 发表于 2015-4-5 18:50
HashSet存入的元素和取出元素是位置是不一样的,HashSet是存储方式是无序的,而且数据不能重复
TreeSet存入 ...

集合存储的本来就是对象,也只能存储对象
回复 使用道具 举报
kfcka 发表于 2015-4-5 18:50
HashSet存入的元素和取出元素是位置是不一样的,HashSet是存储方式是无序的,而且数据不能重复
TreeSet存入 ...

谢谢大神啊,好人啊。
回复 使用道具 举报
HashSet底层数据结构是hash表
TreeSet底层数据结构是二叉树
回复 使用道具 举报
HashSet存入的元素和取出元素是位置是不一样的,HashSet是存储方式是无序的,而且数据不能重复
TreeSet存入元素默认按字典顺序排列,元素也不能重复
如果是存入对象的话:
HashSet是通过复写HashCode和equals来判断对象是否重复。
TreeSet是通过实现Comparable接口内的compareTo方法或者自定义比较器实现Compartor接口的compare方法来判断对象是否重复。
回复 使用道具 举报
hashset和treeset都是set接口的实现子类,都具备set的特点,就是元素无序且唯一。
HashSet:不保证元素的迭代顺序。并且,不保证该顺序恒久不变。
TreeSet:根据构造方法的不用,选择使用自然排序或者比较器排序。按照实际的需求,可以对元素进行排序。并且保证唯一。
回复 使用道具 举报
hashSet这个是无序的。
treeSet这个是有序的。(记住自定义的对象要实现 Comparator接口 )
其他就没必要说了
回复 使用道具 举报
两个集合都是无序的(相对于存储和取出而言,存进去是一个顺序,取出来的又是一个顺序)
hashset的话,不能重复,没有顺序,treeset是取出来的时候,按照二叉树自然排序,没有重复
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马