Java实现将数组内的顺序随机(Math.random())打乱,生成一个新的数组

基础算法 专栏收录该内容
2 篇文章 0 订阅

数组里有{1,2,3,4,5,6,7,8,9},请随机打乱顺序,生成一个新的数组

知识点:

  1. for循环遍历数组;
  2. Math.random()的使用;
  3. Arrays.toString遍历数组。

思路:

  1. 创建数组,数组a元素为{1,2,3,4,5,6,7,8,9}
  2. srand方法利用Math.random()方法随机取出a中的元素放入新数组b中

代码实现:

import java.util.Arrays;

public class RandomArray {
	/**
	 * 数组里有{1,2,3,4,5,6,7,8,9},请随机打乱顺序,生成一个新的数组
	 * @author 爱吃糖的猫小闹
	 */
	public static int[] srand(int[] a){
		int[] b = new int[a.length];
		for(int i=0;i<a.length;i++){
			//随机获取下标
			int tmp=(int)(Math.random()*(a.length-i));//随机数[0,a.length-i]
			b[i]=a[tmp];
			/**
			 * 将此时a[tmp]的下标移动到靠后的位置,
			 * 由于有随机数为了不重复取到同一个数。
			 * 例如:tmp随机数为 2,2,0,1,3,0,1,1,0
			 * 若不将a[2]后移就会再次操作a[2]在b[i]数组中存储2次
			 * 移动的为a数组中的数字与b数组无关,不影响b数组
			 */
			int change=a[a.length-i-1];
			a[a.length-i-1]=a[tmp];
			a[tmp]=change;
		}
		return b;
	}
	public static void main(String[] args){
		int[] a={1,2,3,4,5,6,7,8,9};
		System.out.println(Arrays.toString(srand(a)));//使用Arrays存储可以直接调用toString方法,省去for循环遍历数组
	}
}

运行结果:
在这里插入图片描述

后记:第一次发博客草率了!唐突了!希望有大佬可以多多指点下我这只菜鸟,让我可以有所进步。(〃‘▽’〃)

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值