; ;

Java生成不重复的随机数

public class test {

     public static int[] Randoms(int number) {

           Random rand = new Random(); //创建一个新随机数生成器
           int nu[] = new int[7];   //创建一个7位的数组,主要是保存结果,我需要7个不重复的随机值
           boolean[] bool = new boolean[number + 1];  #+1是因为在下面随机数中我为了避开传入的数,不从0开始,所以+1,如果现在这里不加1,会提示越界
           int randint = 0;
           for (int i = 0; i < 7; i++) {
                do {
                     randint = rand.nextInt(number) + 1;  生成给定的随机数
                } while (bool[randint]);   #是否已经生成数字,    bool[randint] 默认是false,如果状态已经设置为了true,不进入状态,有执行do
                bool[randint] = true;   //状态设置为true 
                nu[i] = randint;
           }
           return nu;

     }

     public static void main(String[] args) {
           int str[] = Randoms(11);
           for (int i : str) {
                System.out.println(i);
           }

     }
}




 

posted @ 2017-06-15 17:40  做梦的人-  阅读(7556)  评论(0编辑  收藏  举报