为了账号安全,请及时绑定邮箱和手机立即绑定

Set的无序性要怎么理解

     先建立一个List类型的集合;遍历这个集合,把所有的值依次传入一个Set类型的集合,清空这个List的集合
    再把刚存入Set集合的元素依次存入刚刚清空过的List集合中,遍历输出该List集合,发现:输出的结果与原List中的顺序不一样,但多次执行后发现,每次的输出结果都一样,并没有看出无序性。
    这个要怎么理解?
    如果说存储是按照哈希表存存放在固定地址的,视频中的迭代器遍历为什么可以无序输出?
    如果说是无序存储,我遇到的问题怎么解释啊?。。。。

求助啊  大神啊  跪等啊!

正在回答

4 回答

Set的无序性应该指的是没有办法像List那样可以通过index获取相应位置上的元素吧

0 回复 有任何疑惑可以回复我~

如果你的面前有一摞书,我让你从最下面的一本开始抽取,那么你只有一种抽取方法,因为他们的摆放顺序是已定的,这就是List。如果你面前的地上有一些散落的书籍,他们平铺在地上,我让你把他们一本本的捡起来,你会有很多种顺序,因为他们的摆放是无序的,这就是Set.

0 回复 有任何疑惑可以回复我~

集合内元素的存放顺序和hashcode有关,而哈希表是用算法把不同的数据按照规则放在响应的地址里,所以位置应该是确定的,至于set的无序性指的应该是输出数据的顺序不是用户可以控制的,所以对于用户来说是无序的。

2 回复 有任何疑惑可以回复我~
#1

Goldberg 提问者

就这个视频中的 迭代器输出,存储的元素都一样,为什么每次输出结果不一样?。。这个要怎么理解才好?
2016-02-25 回复 有任何疑惑可以回复我~

哈希表是无序的,也就是说你第一个放进去的值他是在最后才读取出来的,也就是先进后出,后进先出的是没有顺序的

0 回复 有任何疑惑可以回复我~
#1

Goldberg 提问者

后进先出就不是把输入结果倒过来了吗? 但是通过转存后,原list的第十个元素到了第四个的位置,一共52个元素额
2016-02-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409788    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

Set的无序性要怎么理解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信