JAVA 实现向任意长度的一维数组向内写入不重复的随机数的方法封装

大三学生党 平时零散的听课 Java是散装的。。。最近从头复习穿线中发发博客 看看老哥们有没有什么好建议 马上大四了 慌

import java.util.Random;

public class test2 {

    public static int[] randomArr(int[] x,int y) {//注意y值需大于等于一维数组x的长度不然会陷入死循环
        Random r = new Random();
        int j = 0;
        int p = 0;
        int js = 0;
        int[] f = new int[x.length];

        for (int k = 0; k < x.length; k++) {

            p = 0;
            j = 0;
            int z = r.nextInt(y) + 1;
            for (int i = 0; i < x.length; i++) {
                if (x[i] != z) {
                    j++;
                }
                p++;
            }
            if (j == p) {
                x[k] = z;
                js++;
            } else {
                k--;
                js++;
            }
        }
        System.out.println("************共循环了" + js + "次***************");
        return x;

    }


    public static void main(String[] args) {
        long star = System.currentTimeMillis();
        int[] x = new int[30];

        x = test2.randomArr(x,30);


        for (int i = 0; i < x.length; i++) {
            System.out.print(x[i] + "  ");

        }

        System.out.println();
        long over = System.currentTimeMillis();
        System.out.println("运行时间" + (over - star) + " ms");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值