黑马程序员技术交流社区

标题: 获得不重复的随机数 [打印本页]

作者: 老衲玩IT    时间: 2013-8-27 08:32
标题: 获得不重复的随机数
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]);
                }
        }
       
}



作者: jingzhouheima    时间: 2013-8-27 11:50
你如果把产生的随机数放在Hashset集合里,,代码岂不更优!!
作者: 老衲玩IT    时间: 2013-8-27 18:10
jingzhouheima 发表于 2013-8-27 11:50
你如果把产生的随机数放在Hashset集合里,,代码岂不更优!!

对哟,只要判定这个集合size





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