黑马程序员技术交流社区

标题: 怎样保证随机数不重复? [打印本页]

作者: 一直很安静    时间: 2013-11-22 20:32
标题: 怎样保证随机数不重复?
获取10个1-20的随机数 并且不能重复
我写了获取10个1-20随机数的方法 但是不知道怎样保证不重复 想把获取到的随机数装入harshest集合 但是装入集合中后去除了重复的元素就不到十个了 谁能提供个思路 怎样做?
获取随机数方法为:int d=(int)(Math.random ()*10+1)+int d=(int)(Math.random ()*10+1)
作者: 零下五度的水    时间: 2013-11-22 21:03
做个判断就好啊。。。
if collection.contains(x)
    remethod();
作者: likeermei    时间: 2013-11-23 16:13
关于这个你其实多想了,每生成一个随机数,然后忘集合里放一个。然后在生成随机数。就先调用集合的。contans方法。如果存在,就continue。否则就往集合里添加。
作者: doitforyou    时间: 2013-11-23 19:10
//使用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);




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