黑马程序员技术交流社区

标题: TreeSet和TreeMap有什么区别吗? [打印本页]

作者: Без_тебя    时间: 2014-6-13 14:36
标题: TreeSet和TreeMap有什么区别吗?
如题:TreeSet和TreeMap有什么区别吗?
作者: lvc    时间: 2014-6-13 14:48
自己弄的。。。分享

java集合关系图.rar

9.85 KB, 下载次数: 376


作者: Conning    时间: 2014-6-13 22:49

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

不同点:
最主要的区别就是TreeSet和TreeMap非别实现Set和Map接口
TreeSet只存储一个对象,而TreeMap存储两个对象Key和Value(仅仅key对象有序)
TreeSet中不能有重复对象,而TreeMap中可以存在
作者: 小小菜鸟101    时间: 2014-6-14 00:12
都是拿来存取数据,但是方法不同,因为他们的接口不同
作者: 黄泉    时间: 2014-6-14 14:57
TreeMap 它是键值对的形式进行存储   最实际的就是qq 你的qq账号是对应你的个人资料   
而个人资料可以说是一个类,加入不同的参数,来修改个人信息。

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

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

作者: Wokno    时间: 2014-6-14 20:56
路过看看。。。。。。。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2