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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Set集合不都是无序的吗?为何TreeSet是有序的?默认是自然顺序。

20 个回复

倒序浏览
这里的序是指 存入的顺序  也就是没有存入的顺序

TreeSet的顺序是按照二叉树结构的顺序   和存入顺序无关

所以叫无序
回复 使用道具 举报
长知识了
回复 使用道具 举报
bolt 发表于 2015-9-9 08:11
这里的序是指 存入的顺序  也就是没有存入的顺序

TreeSet的顺序是按照二叉树结构的顺序   和存入顺序无关

什么叫存入的顺序 也就是没有存入的顺序
回复 使用道具 举报
本帖最后由 bolt 于 2015-9-9 10:40 编辑
xiao_D 发表于 2015-9-9 10:33
什么叫存入的顺序 也就是没有存入的顺序

换句话说 ,不管你怎么存都不会影响集合的排列的顺序 (如果你不 人为重写他们的排序方法 如hashCode 二叉树)

要是实在不理解 你可以对比下List的增加元素和元素排列的关系
回复 使用道具 举报
答了不少题 没个技术分真不想答了
回复 使用道具 举报
这个顺序  体现在它们的底层数据结构不同   HashSet基于哈希表  TreeSet基于二树叉     存数据对于你来说是无序的   但对计算机来说是有他的存储规则的(不知可不可以叫做有序), HashSet根据HashCode和equals方法     TreeSet根据CompareTo方法,,,,我也没有理解透,说不清楚     建议你看一下毕老师的视频
回复 使用道具 举报
Mr.W 中级黑马 2015-9-9 10:52:18
8#
xiao_D 发表于 2015-9-9 10:33
什么叫存入的顺序 也就是没有存入的顺序

就是比如你add的时候,写的顺序是A,B,C;然后你得到的可能是A,C,B. 也可能是别的
回复 使用道具 举报
Mr.W 中级黑马 2015-9-9 10:53:34
9#
bolt 发表于 2015-9-9 10:41
答了不少题 没个技术分真不想答了

技术分好像要发帖
回复 使用道具 举报
Mr.W 发表于 2015-9-9 10:52
就是比如你add的时候,写的顺序是A,B,C;然后你得到的可能是A,C,B. 也可能是别的 ...

对你来说是无序的  但是计算机的输出是有序的   如果你没有复写方法的话       就比如说计算机获取随机数,它还是有一定的算法的   虽然对你来说得到的数据已经是你需要是随机数
回复 使用道具 举报
bolt 发表于 2015-9-9 10:41
答了不少题 没个技术分真不想答了

哥不缺技术分了   
回复 使用道具 举报
这里的顺序是一个相对的概念。
回复 使用道具 举报
xiao_D 发表于 2015-9-9 10:55
对你来说是无序的  但是计算机的输出是有序的   如果你没有复写方法的话       就比如说计算机获取随机数 ...

嗯,其实次数多了应该就是一种规律
回复 使用道具 举报
xiao_D 发表于 2015-9-9 10:33
什么叫存入的顺序 也就是没有存入的顺序

可以理解为报道的顺序,比如开会,
先签到的坐前排,后签到的做后排(对应List集合是先存入放前面,后存入放后面)。
还有一种安排方式是
身高矮的前面,高的坐后面。这就是按身高的自然排序坐(对应Set集合的),跟签到先后顺序无关。这种情况就是集合里说的无序。(这里的序指的是签到的顺序)
集合所说的序,指的是元素存入集合的顺序,当元素存入的顺序和元素的排序位置是一致时就是有序,否则就认为无序。
例如:  存入顺序为5-->4-->2-->1
          取出顺序也为5-->4-->2-->1
则认为是有序,它的序有无只由元素存入与取出的顺序是否一致决定,跟元素自身的属性无关。TreeSet说的自然排序是根据元素的某个属性排序的,打乱了元素存入集合的顺序,所以定义为无序
回复 使用道具 举报
set说的无顺序是输出不按照字符串加到集合的先后顺序,
回复 使用道具 举报
把楼上的总结一下就全面了
回复 使用道具 举报
老师这样说的,set集合元素的存储和取出的顺序是不一样的,也就是说,即便是treeset存储按照自然顺序存储,但是读取的顺序可能是混乱的
回复 使用道具 举报
bolt 发表于 2015-9-9 10:41
答了不少题 没个技术分真不想答了

答题,发帖有黑马币,黑马币可以换技术分,不用谢~~
回复 使用道具 举报
TreeSet底层使用的是二叉树,所以是有序的啊
回复 使用道具 举报
xiao_D 发表于 2015-9-9 10:56
哥不缺技术分了

技术分怎么得地
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马