A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

783373073

初级黑马

  • 黑马币:42

  • 帖子:8

  • 精华:0

© 783373073 初级黑马   /  2016-6-28 15:04  /  388 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//  通过生成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       迭代出的结果是有序的?

*/

1 个回复

倒序浏览
哪位大神帮忙解答一下 啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马