黑马程序员技术交流社区

标题: java生成不重复的随机数 [打印本页]

作者: 吴璞玉    时间: 2012-3-12 20:34
标题: java生成不重复的随机数
生成不重复的随机数,比如1-100之间生成50个不同的随机数,使用什么来装这些数据合适
作者: lipanfeng    时间: 2012-3-12 20:37
如果用int数据,就放在int数组里
作者: 王睿    时间: 2012-3-12 20:40
那要看你取出来的数用来干什么啊。如果固定了个数了,就用数组,如果以后还要加的话就用集合。
作者: 赵英坤    时间: 2012-3-12 20:47
        Random rand = new Random(47);
        这是生成不重复的随机数,47是一个特殊的数(47是一个Seed,详细可以去查文档),用它生成的随机数就是不重复的
rand.nextInt(100);这就是生成100之内的随机int数想要什么类型的数就生成nextDouble()之类的
        
作者: chende_client    时间: 2012-3-12 21:42
可以使用Set集合存放这些随机数,因为set集合中的键盘不能重复,如果定义集为为set<Integer> set=new HashSet<Integer>(); 这样的集合,再向集合中添加产生的随机数,在向集合中添加随机数时,集每次都会判集合中的键(在当前这个集合中键就是里面存放的数据)是否重复,若重复则不添加。因此,通过使用set集合存放随机数可以得到50个不同的100以内的随机数,实现代码如下:
Set<Integer> set = new HashSet<Integer>();
while (true) {
                        if (set.size() >= 50)
                                break;
                        set.add(new Random().nextInt(100));
                }
                for (int n : set) {
                        System.out.print(n + "  ");
                }




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