Set的无序性要怎么理解

来源:4-11 学生选课---通过 Set 集合管理课程

Goldberg

2016-02-23 21:56

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

求助啊  大神啊  跪等啊!

写回答 关注

4回答

  • ywang04
    2016-11-20 14:02:09

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

  • 七九九
    2016-02-26 22:07:03

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

  • 对方正在学习
    2016-02-24 13:47:37

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

    Goldbe...

    就这个视频中的 迭代器输出,存储的元素都一样,为什么每次输出结果不一样?。。这个要怎么理解才好?

    2016-02-25 09:24:01

    共 1 条回复 >

  • Mstyang
    2016-02-24 11:20:35

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

    Goldbe...

    后进先出就不是把输入结果倒过来了吗? 但是通过转存后,原list的第十个元素到了第四个的位置,一共52个元素额

    2016-02-25 09:22:28

    共 1 条回复 >

Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题