黑马程序员技术交流社区

标题: HashSet 存储元素的疑惑 [打印本页]

作者: 783373073    时间: 2016-6-28 15:04
标题: HashSet 存储元素的疑惑
//  通过生成1-100的随机数 然后添加在HashSet集合中(HashSet的容量设置为100),  
        public static void main(String[] args) {

                HashSet<Integer> hs = new HashSet<>();

                Random rd = new Random();

                while (hs.size() < 100) {

                        hs.add(rd.nextInt(100) + 1);

                }
                System.out.println(hs);

        }

}
/* 第1个疑惑:   迭代出的结果是从(1-100)顺序排列的 。为什么 HsahSet迭代出的结果是有序的?  HashSet说法是不保证有序(有序情况虽然也包含在不保证情况中)  但是为什么每次迭代出的结果都是从 (1-100)顺序排列的.
第2个疑惑:  为什么将  while (hs.size() < 100)    改为    while (hs.size() < 20 )       迭代出的结果是无序的?
第3个疑惑:  为什么将   代码改为
                    hs.add(rd.nextInt(100) + 1+100000);           
                      for (Integer it : hs) {
                                System.out.print(it-100000+" ");
                        }                                     插入的时候加100000 迭代时候减去100000       迭代出的结果是无序的?

第4个疑惑:  为什么将   代码改为
                    hs.add(rd.nextInt(100) + 1+100);           
                      for (Integer it : hs) {
                                System.out.print(it-100+" ");
                        }                                     插入的时候加100迭代时候减去100       迭代出的结果是有序的?

*/


作者: 783373073    时间: 2016-6-29 09:10
哪位大神帮忙解答一下 啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2