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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 老衲玩IT 中级黑马   /  2013-8-27 08:32  /  970 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;

import java.util.Random;

/**
* 获取10个1至20的随机数,不重复。
* @author Administrator
*/
public class Test {
        public static void main(String[] args) {
                int[] nums=new int[10];
                Random random=new Random();
                //初始化数组
                for (int i = 0; i < nums.length; i++) {
                        nums[i]=0;
                }
                //标记是否重复
                boolean isReshow;
                //存储随机产生的数字
                int rnd;
                for (int i = 0; i < nums.length; i++) {
                        do {
                                isReshow = false;
                                //随机产生1-20的数字
                                rnd = random.nextInt(20) + 1;
                                for (int j = 0; j < i; j++) {
                                        //判断是否与前面的元素重复
                                        if (rnd == nums[j]) {
                                                isReshow = true;
                                                break;
                                        }
                                }
                                //如果不重复,对指定下标的元素赋值
                                if (!isReshow) {
                                        nums[i]=rnd;
                                }
                        } while (isReshow);//当数字不重复时跳出循环
                }
                //输出数组
                for (int i = 0; i < nums.length; i++) {
                        System.out.println(nums[i]);
                }
        }
       
}


2 个回复

倒序浏览
你如果把产生的随机数放在Hashset集合里,,代码岂不更优!!
回复 使用道具 举报
jingzhouheima 发表于 2013-8-27 11:50
你如果把产生的随机数放在Hashset集合里,,代码岂不更优!!

对哟,只要判定这个集合size
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马