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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

TreeSet和Treemap的两种排序方式都是什么?  
它们两个的排序方式有什么不同?

12 个回复

倒序浏览

都是二叉树
回复 使用道具 举报

具体一点这两个方法好吗
回复 使用道具 举报
这两个底层都是不一样的,一个时单列一个是双列
回复 使用道具 举报
Set,Map集合底层数据结构都是二叉树,Set集合元素是单个对象,Map集合里面元素师键值对。
回复 使用道具 举报
兄弟我只能帮你到这了!
图是TreeMap集合的底层!它是一对一对以键值对的形式存在!
TreeSet集合差不多,它是单个的!你就想象一下把值去掉,留下键就可以了!!就是那个样子

二叉树的原理2.png (54.75 KB, 下载次数: 10)

二叉树的原理2.png
回复 使用道具 举报
TreeSet和TreeMap排序方式的两种排序方式:(1)自然排序,集合中元素的类实现comparable接口,重写compare(Obje obj)方法;(2)比较器排序,定义一个类实现comparetor接口,将该类的实例化对象作为参数传递给集合,使集合具备比较性,也可以使用匿名内部类。   TreeSet的底层封装了TreeMap,通过TreeMap的键保证元素的唯一性,所以两者的排序方式基本一样
回复 使用道具 举报 1 0
wode1311 发表于 2015-8-15 22:01
TreeSet和TreeMap排序方式的两种排序方式:(1)自然排序,集合中元素的类实现comparable接口,重写compare ...

应该是TreeMap底层封装了TreeSet吧???
回复 使用道具 举报
TreeSet的底层封装的是TreeMap,通过TreeMap键值的唯一性,确保了TreeSet的唯一性,可以看看底层代码。
回复 使用道具 举报 1 0
wode1311 发表于 2015-8-15 22:57
TreeSet的底层封装的是TreeMap,通过TreeMap键值的唯一性,确保了TreeSet的唯一性,可以看看底层代码。 ...

好吧,多谢
回复 使用道具 举报
TreeSet如果想往里面放置对象,那么这个类,有复写hashCode()和equals()方法,保证Set集合元素的唯一性,而TreeMap存放的元素,需要实现comparable接口,或者在创建TreeMap传递一个比较器对象进去, 这么做事为了保证存放的元素能够排序
回复 使用道具 举报
dddlinux 发表于 2015-8-15 23:20
TreeSet如果想往里面放置对象,那么这个类,有复写hashCode()和equals()方法,保证Set集合元素的唯一性,而Tr ...

TreeMap存放的键值对是字符串对应数字的话,不用自然排序也不用比较器排序,为什么它还会自动排序?
回复 使用道具 举报
public final class String extends Object implements Comparable<String>
这是API String类的定义,实现了Comparable这个接口,所以它是按自然排序的,不指定比较器也能排序
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马