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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

12 个回复

正序浏览
public final class String extends Object implements Comparable<String>
这是API String类的定义,实现了Comparable这个接口,所以它是按自然排序的,不指定比较器也能排序
回复 使用道具 举报
dddlinux 发表于 2015-8-15 23:20
TreeSet如果想往里面放置对象,那么这个类,有复写hashCode()和equals()方法,保证Set集合元素的唯一性,而Tr ...

TreeMap存放的键值对是字符串对应数字的话,不用自然排序也不用比较器排序,为什么它还会自动排序?
回复 使用道具 举报
TreeSet如果想往里面放置对象,那么这个类,有复写hashCode()和equals()方法,保证Set集合元素的唯一性,而TreeMap存放的元素,需要实现comparable接口,或者在创建TreeMap传递一个比较器对象进去, 这么做事为了保证存放的元素能够排序
回复 使用道具 举报
wode1311 发表于 2015-8-15 22:57
TreeSet的底层封装的是TreeMap,通过TreeMap键值的唯一性,确保了TreeSet的唯一性,可以看看底层代码。 ...

好吧,多谢
回复 使用道具 举报
TreeSet的底层封装的是TreeMap,通过TreeMap键值的唯一性,确保了TreeSet的唯一性,可以看看底层代码。
回复 使用道具 举报 1 0
wode1311 发表于 2015-8-15 22:01
TreeSet和TreeMap排序方式的两种排序方式:(1)自然排序,集合中元素的类实现comparable接口,重写compare ...

应该是TreeMap底层封装了TreeSet吧???
回复 使用道具 举报
TreeSet和TreeMap排序方式的两种排序方式:(1)自然排序,集合中元素的类实现comparable接口,重写compare(Obje obj)方法;(2)比较器排序,定义一个类实现comparetor接口,将该类的实例化对象作为参数传递给集合,使集合具备比较性,也可以使用匿名内部类。   TreeSet的底层封装了TreeMap,通过TreeMap的键保证元素的唯一性,所以两者的排序方式基本一样
回复 使用道具 举报 1 0
兄弟我只能帮你到这了!
图是TreeMap集合的底层!它是一对一对以键值对的形式存在!
TreeSet集合差不多,它是单个的!你就想象一下把值去掉,留下键就可以了!!就是那个样子

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

二叉树的原理2.png
回复 使用道具 举报
Set,Map集合底层数据结构都是二叉树,Set集合元素是单个对象,Map集合里面元素师键值对。
回复 使用道具 举报
这两个底层都是不一样的,一个时单列一个是双列
回复 使用道具 举报

具体一点这两个方法好吗
回复 使用道具 举报

都是二叉树
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马