HashSet,TreeSet有什么用?

dash_running 2007-04-23 11:48:51
HashSet存对象是根据其hashCode值,TreeSet似乎跟平衡二叉树有点象,学数据结构的时候知道 hash表和平衡二叉树都是为了查询,修改,删除等操作时间复杂度低,具体多少忘了,呵呵.
可是HashSet, TreeSet都只能用Iterator来顺序遍历,那如何表现出hash和二叉树的优越处呢? 比如说HashSet好象没有通过hashCode来找到对应元素的方法啊
不知道该怎么理解?
...全文
1280 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hiczw001 2010-01-27
  • 打赏
  • 举报
回复
答非所问
  • 打赏
  • 举报
回复
to lz(ls):

那当然是不一样的了,作为Set存放在里面的元素是不会重复的,而你用数组存的话,就有可能出现重复的东西,并不是不提供随机访问方法就是Set的。

正如各位楼上所说的,HashSet是通过Hash值来存放的,TreeSet里面存放的是排序后的元素。
dash_running 2007-06-12
  • 打赏
  • 举报
回复
我自己看了下代码,其实HashSet 和TreeSet本身是Set, HashSet用hash表存元素,其实倒不一定快,直接用数组存不是更快吗?我用数组存,不提供随机访问方法不就是Set了吗?
Fantongking 2007-06-07
  • 打赏
  • 举报
回复
Hashset 和 TreeSet 都是用来储存数据的数据结构,Hashset高效但不带排序,TreeSet效率没Hashset高,但可以排序.....
楼主要知道他们要来干什么就得复习下数据结构......
iamsangster 2007-06-07
  • 打赏
  • 举报
回复
hashSet hashCode && equals
TreeSet Comparable || Comparator
brooksychen 2007-06-05
  • 打赏
  • 举报
回复
楼主只要看一看HashSet和TreeSet这两个类的代码,就会明白了。
527xm 2007-06-04
  • 打赏
  • 举报
回复
是的,hashset只是存储效率高。
dash_running 2007-06-02
  • 打赏
  • 举报
回复
楼上,你说的这些我都知道,我是不太明白如果要在HashSet 里查询某个对象,你怎么查?或者我要把某个hashset里的某个对象取出来,我怎么取?不还是要用iterator吗? 如果要用iterator,那要hashset有什么用?只是为存对象的时候快吗???
brooksychen 2007-04-24
  • 打赏
  • 举报
回复
不是都回答你了吗?
dash_running 2007-04-24
  • 打赏
  • 举报
回复
没人知道吗?
brooksychen 2007-04-23
  • 打赏
  • 举报
回复
底层来说,HashSet是用Hash表来存储数据,而TreeSet是用二叉平衡树来存储数据。

功能上来说,由于TreeSet实现了SortedSet接口,所以是一个有序的Set,可以使用SortedSet接口的first()、last()等方法。但由于要排序,势必要影响速度,所以,如果不需要顺序的话,还是使用HashSet吧,使用Hash表存储数据的HashSet在速度上更胜一筹。

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧