把数组里元素随机打乱并打印出来

前言

这篇文章要实现的是,把数组里面的元素随机打乱并打印出来

一、解题思路

1、首先我们可以利用random类来随机生成数字
2、把通过random生成出来的数字作为我们需要打乱的数组的下标
3、在此期间我们需要判断random生成的数字是否重复,如果重复就需要重新生成,因为下标的值是唯一的
4、最后我们通过生成的随机数来作为数组的下标,这样我们打印出来的数组就是随机的了

二、实现代码

1.完整代码(无注释)

代码如下(示例):

        int[] a= {5,7,9,11,13,15,17,22,29,32};
        int[] b= {11,11,11,11,11,11,11,11,11,11};
        Random random = new Random();
        int x = random.nextInt(10);
        int y = 0;
        b[y] = x;
        while(true){
            int z = random.nextInt(10);
            for (int i = 0 ; i < b.length ; i++){
                if (z==b[i]){
                    break;
                }else{
                    if (i==9){
                        y+=1;
                        b[y] = z;
                        break;
                    }
                }
            }
            if (y==9){
                break;
            }
        }
        for (int i = 0 ; i < a.length ;i++){
            int temp = 0;
            temp=b[i];
            System.out.print(a[temp]+" ");
        }

2.完整代码(带注释)

代码如下(示例):

        //需要打乱的数组
        int[] a= {5,7,9,11,13,15,17,22,29,32};
        //存放随机数的数组
        int[] b= {11,11,11,11,11,11,11,11,11,11};
        //定义一个random类
        Random random = new Random();
        //第一个随机数范围为0-9
        int x = random.nextInt(10);
        //随机数下标
        int y = 0;
        //把随机数赋值给存放随机数的数组
        b[y] = x;
        //循环体
        while(true){
            //生成随机数范围为0-9
            int z = random.nextInt(10);
            for (int i = 0 ; i < b.length ; i++){
                //当随机数与存放随机数的数组里的元素重复时跳出循环,进行下次循环
                if (z==b[i]){
                    break;
                }else{//当随机数与存放随机数的数组里的元素都不重复时
                    if (i==9){
                        y+=1;//随机数组的下标+1来存放该随机数
                        b[y] = z;//随机数赋值给存放随机数的数组
                        break;
                    }
                }
            }
            //当y==9时,此时存放随机数的数组已经完成所有的存放,即可跳出while循环
            if (y==9){
                break;
            }
        }
        //根据存放随机数的数组的元素作为原数组的下标,即可生成随机打乱的数组
        for (int i = 0 ; i < a.length ;i++){
            int temp = 0;
            temp=b[i];
            System.out.print(a[temp]+" ");
        }

总结

注意:一定要注意随机数是否重复,还有就是对应的循环关系

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值