练习写 不重复的随机数

发布时间 2023-06-13 14:39:50作者: 胖豆芽
package com.fqs.demo061301;

import com.sun.scenario.effect.impl.prism.ps.PPStoPSWDisplacementMapPeer;

import java.util.Random;

public class ArrNo {
    public static void main(String[] args) {
        //定义原始数组arr

        int []arr={11,22,33,44,55};
        int weishu=arr.length;
        //不重复额数组arrNo
        int[]arrNo2=getNo(weishu);

        //打印随机数 arrNo2里面包含不重复的下标
        for (int i = 0; i < weishu; i++) {
            System.out.println(arrNo2[i]);

        }

    }
    //获取随机数组  包含不重复的下标
    public static int[] getNo(int weishu) {
        int []arrNo=new int[weishu];
        //第一个随机数num0
        Random r=new Random();
        int num0=r.nextInt(weishu);
        System.out.println("第一个随机数:"+num0);
        arrNo[0]=num0;
        for (int i = 1; i < weishu; ) {//第二个,第三个随机数
            //第二个随机数num 不一定符合
            int num=r.nextInt(weishu);
            System.out.println("第"+(i+1)+"个不一定符合条件的随机数:"+num);
            boolean isFind=false;
            for (int j = 0; j <i ; j++) {
                if (num == arrNo[j]) {
                    System.out.println("相等,不符合条件");
                    isFind = true;
                    //有重复的
                    break;

                }

            }
            if(isFind==false){
                arrNo[i]=num;
                System.out.println("不相等,将"+num+"赋值给arrNo["+i+"]");
                i++;
            }
        }return arrNo;

    }
}