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集合的无序性怎样去理解~ 展开
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集合的无序性怎样去理解~ 展开
4个回答
展开全部
首先你要知道Set是一个接口,这个接口的约定就是存储内容是个:无重复元素的集合
它当然就是没有顺序的
它当然就是没有顺序的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个应该是按照hash表的遍历去找的,hash表是用算法把不同的数据按照规则放在响应的地址里,所以无论怎么放,位置是一定的,并且遍历的方式也是一定的
追问
我觉得你说的有道理,采纳你的答案。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要想有序,改成"Collection books = new LinkedHashSet();"就可以了。
追问
却使用了LinkedHashSet()后,遍历打印顺序和add顺序保持了一致~
确实用了LinkedHashSet()后,遍历打印顺序和add顺序保持了一致~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只是不按照添加的时候的顺序存储 就是这个意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询