Java中Set集合的无序性需要怎样理解

源程序代码如下:publicclassIteratorErrorTest{publicstaticvoidmain(String[]args){//创建一个集合Colle... 源程序代码如下:
public class IteratorErrorTest { public static void main(String[] args){ //创建一个集合 Collection books = new HashSet(); books.add( "轻量级Java EE企业应用实战1" ); books.add("疯狂Java讲义3"); books.add("疯狂Android讲义2"); //获取books集合对应的迭代器 Iterator it = books.iterator(); while(it.hasNext()){ String book = (String)it.next(); System.out.println(book); } }}

控制台打印输出的结果固定为:
疯狂Java讲义3疯狂Android讲义2轻量级Java EE企业应用实战1

无论怎样调节在main方法中的插入顺序,不管123怎么排,最后打印的记过均为321,此时的Set集合的无序性怎样去理解~
展开
 我来答
百度网友5426e4f
2015-01-19 · TA获得超过256个赞
知道小有建树答主
回答量:114
采纳率:100%
帮助的人:53.8万
展开全部
首先你要知道Set是一个接口,这个接口的约定就是存储内容是个:无重复元素的集合
它当然就是没有顺序的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
314659476
2015-01-19 · TA获得超过1836个赞
知道大有可为答主
回答量:2162
采纳率:66%
帮助的人:561万
展开全部
这个应该是按照hash表的遍历去找的,hash表是用算法把不同的数据按照规则放在响应的地址里,所以无论怎么放,位置是一定的,并且遍历的方式也是一定的
追问
我觉得你说的有道理,采纳你的答案。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
让猫飞一会儿
2015-01-19 · TA获得超过1119个赞
知道小有建树答主
回答量:540
采纳率:80%
帮助的人:277万
展开全部
  你要想有序,改成"Collection books = new LinkedHashSet();"就可以了。
追问
却使用了LinkedHashSet()后,遍历打印顺序和add顺序保持了一致~
确实用了LinkedHashSet()后,遍历打印顺序和add顺序保持了一致~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
优质内容提供者andy
2015-01-19 · TA获得超过1561个赞
知道大有可为答主
回答量:2551
采纳率:72%
帮助的人:759万
展开全部
只是不按照添加的时候的顺序存储 就是这个意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式