java中,如何用随机数赋值给一个数组,并且数组中的元素不能够重复?

import java.util.Arrays;      //导入,用于排序,可不实用
import java.util.Random;   //导包 ,用于产生一个随机数


public class RondanArrays {
    public static void main(String[] args) {
        Random random = new Random();          //创建一个随机数对象,用于产生一个随机数
        int[] arr = new int[10];               //创建一个数组对象,里面有50个元素,注意下标为(0-49]
        for (int i = 0; i < arr.length; i++) {           //相当于遍历一个数组,用来对元素赋值操作
              int a = random.nextInt(11);       //产生一个随机数,并保存到 a变量中,注意此随机数产生的范围为[0-10]
            if(iscongfu(a, arr, i) != - 1){             //调用方法,如果次方法的返回值不是-1,证明这个随机数没有重复
                arr[i] = a;                             //赋值 将这个随机数存放到数组a[i]中;
            }else{
                i--;                                 //否则,就将变量i--,注意:如果这个不加上,很有可能出现随机数重复就不对数组赋值,出现多个数组元素为0的情况
            }

        }

        //Arrays.sort(arr);                            //当对一个大数组进行不重复随机数赋值的时候 ,可以排序,快速查看是否出现重复情况
        for (int i = 0; i < arr.length ; i++) {       //遍历这个数组,打印输出 测试是否重复
            System.out.println(arr[i]);
        }

    }



    public static int iscongfu(int r,int[] s ){     //此方法是判断数组里面的元素是否存在一个整数r
        for (int i = 0; i <s.length ; i++) {
            if(s[i]==r){
                return -1;                   //存在返值为-1
            }

        }
        return r;                               //不存在返回值为r
    }


    public static int iscongfu(int r,int[] s ,int h){   //此方法重载了上述方法,此方法适用于初始化数组的赋值,运行效率较高
        for (int i = 0; i <h ; i++) {
            if(s[i]==r){
                return -1;
            }

        }
        return r;
    }


}

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值