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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴璞玉 黑马帝   /  2012-3-12 20:34  /  3981 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

生成不重复的随机数,比如1-100之间生成50个不同的随机数,使用什么来装这些数据合适

4 个回复

正序浏览
可以使用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 + "  ");
                }

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
        Random rand = new Random(47);
        这是生成不重复的随机数,47是一个特殊的数(47是一个Seed,详细可以去查文档),用它生成的随机数就是不重复的
rand.nextInt(100);这就是生成100之内的随机int数想要什么类型的数就生成nextDouble()之类的
        
回复 使用道具 举报
那要看你取出来的数用来干什么啊。如果固定了个数了,就用数组,如果以后还要加的话就用集合。
回复 使用道具 举报
如果用int数据,就放在int数组里
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马