生成一个不重复的随机数组

import java.util.Random;

public class NoR {
    public static void main(String[] args) {
        //随机数
        Random r=new Random();
        //目标随机数组的范围
        int len=9;
        //目标  存放随机数的数组
        int [] arr=new int[len];
        //第一个放入数组中的
        arr[0]=r.nextInt(len);
        //开始后面的值和前面的值比较
        System.out.println("arr[0]:"+arr[0]);
        for (int i = 1; i <len ; ) {//后一个值
            //随机数 temp  如果和前一个数不一样   temp赋值给arr[i]
            int temp=r.nextInt(len);
            //给flag一个初始值,下面需要定义真和假的两种情况
//,如果仅定义一种情况 会出现死循环
boolean isWeiYi=true
; System.out.println("temp:"+temp); //定义一个计数器 避免flag为false时死循环 int count=0;//相等的次数 for (int j = 0; j < i; j++) {//前一个值 System.out.println("开始------------"); //如果相等 跳出内循环 到外循环 再次获取新的随机数 if(temp==arr[j]){ isWeiYi=false;//定义了不唯一的情况 count++; System.out.println(temp+"和"+arr[j]+"相等"); break; } } //没有一次相等时 说明没有重复 if(count==0){ isWeiYi=true;//定义了唯一的情况 } //当flag为真的时候 执行i++ if(isWeiYi==true){ arr[i]=temp; i++; System.out.println(temp+":是唯一的"); } } for (int i = 0; i <len ; i++) { System.out.println(arr[i]); } } }

 

posted @ 2023-06-21 16:34  胖豆芽  阅读(81)  评论(0编辑  收藏  举报