Goldberg
2016-02-23 21:56
先建立一个List类型的集合;遍历这个集合,把所有的值依次传入一个Set类型的集合,清空这个List的集合
再把刚存入Set集合的元素依次存入刚刚清空过的List集合中,遍历输出该List集合,发现:输出的结果与原List中的顺序不一样,但多次执行后发现,每次的输出结果都一样,并没有看出无序性。
这个要怎么理解?
如果说存储是按照哈希表存存放在固定地址的,视频中的迭代器遍历为什么可以无序输出?
如果说是无序存储,我遇到的问题怎么解释啊?。。。。
求助啊 大神啊 跪等啊!
Set的无序性应该指的是没有办法像List那样可以通过index获取相应位置上的元素吧
如果你的面前有一摞书,我让你从最下面的一本开始抽取,那么你只有一种抽取方法,因为他们的摆放顺序是已定的,这就是List。如果你面前的地上有一些散落的书籍,他们平铺在地上,我让你把他们一本本的捡起来,你会有很多种顺序,因为他们的摆放是无序的,这就是Set.
集合内元素的存放顺序和hashcode有关,而哈希表是用算法把不同的数据按照规则放在响应的地址里,所以位置应该是确定的,至于set的无序性指的应该是输出数据的顺序不是用户可以控制的,所以对于用户来说是无序的。
哈希表是无序的,也就是说你第一个放进去的值他是在最后才读取出来的,也就是先进后出,后进先出的是没有顺序的
Java入门第三季
409792 学习 · 4340 问题
相似问题