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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一直很安静 中级黑马   /  2013-11-22 20:32  /  1499 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

获取10个1-20的随机数 并且不能重复
我写了获取10个1-20随机数的方法 但是不知道怎样保证不重复 想把获取到的随机数装入harshest集合 但是装入集合中后去除了重复的元素就不到十个了 谁能提供个思路 怎样做?
获取随机数方法为:int d=(int)(Math.random ()*10+1)+int d=(int)(Math.random ()*10+1)

评分

参与人数 1技术分 +1 收起 理由
To + 1

查看全部评分

3 个回复

倒序浏览
做个判断就好啊。。。
if collection.contains(x)
    remethod();
回复 使用道具 举报
关于这个你其实多想了,每生成一个随机数,然后忘集合里放一个。然后在生成随机数。就先调用集合的。contans方法。如果存在,就continue。否则就往集合里添加。
回复 使用道具 举报
//使用set集合存储,可以保证不重复。
HashSet<Integer> hs = new HashSet<Integer>();
               //当集合元素少于10个时,会一直循环
                while(hs.size()<11){
                        //产生1-20之间的随机数
                        int i = new Random().nextInt(20)+1;
                          //不用判断是否存在,因为是set集合,直接添加即可。如果是list集合则需要判断下
                        hs.add(i);       
                }
               
                System.out.println(hs.size());
                System.out.println(hs);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马