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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Без_тебя 中级黑马   /  2014-6-13 14:36  /  2594 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如题:TreeSet和TreeMap有什么区别吗?

5 个回复

倒序浏览
自己弄的。。。分享

java集合关系图.rar

9.85 KB, 下载次数: 380

回复 使用道具 举报

相同点:
TreeMap和TreeSet都是有序的集合,也就是说他们存储的值都是拍好序的。
TreeMap和TreeSet都是非同步集合,因此他们不能在多线程之间共享,不过可以使用方法Collections.synchroinzedMap()来实现同步
运行速度都要比Hash集合慢,他们内部对元素的操作时间复杂度为O(logN),而HashMap/HashSet则为O(1)。

不同点:
最主要的区别就是TreeSet和TreeMap非别实现Set和Map接口
TreeSet只存储一个对象,而TreeMap存储两个对象Key和Value(仅仅key对象有序)
TreeSet中不能有重复对象,而TreeMap中可以存在
回复 使用道具 举报
都是拿来存取数据,但是方法不同,因为他们的接口不同
回复 使用道具 举报
TreeMap 它是键值对的形式进行存储   最实际的就是qq 你的qq账号是对应你的个人资料   
而个人资料可以说是一个类,加入不同的参数,来修改个人信息。

而TessSet 可以当做一个数组型的集合。 内部有特定的排序方法,而且可以存储数组不能存储的类型。比如对象。

而这就涉及到了数组与集合的区别:
1,数组的特点是存储原生类,而集合带Array的底层是由数组实现,其他是树或者链表结构
2.数组的长度是固定的,而集合的长度根据需求自行扩展
3.数组一个智能存储一个原生类,而集合不考虑泛型的话可以存储多个类型。
4.集合存储原生类是通过自动装拆箱实现的,原来,只有数组能存储原生类,现在有了这个改进,出了集合效率稍低外,集合可以说是完胜。  但是这也是不可避免的,因为集合的底层与数组对比起来,是复杂许多。
回复 使用道具 举报
路过看看。。。。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马