打乱数组内的值 打乱的本质是交换, 交换不会丢数也不会多数; 循环将 随机下标和本次下标内的值交换
package com.fqs.demo; import java.util.Random; public class ZhiBoChouJiang { public static void main(String[] args) { //打乱数组中的顺序 int [] arr={1,2,3,4,5}; Random r=new Random(); for (int i = 0; i < arr.length; i++) { //随机下标 int randomIndex=r.nextInt(arr.length); //将当次的下标的数组值和随机下标的数组值交换 就打乱了数组内的值; //交换就不会导致丢失数组内的值,也不会出现重复的值 //{1,2,3,4,5} 第一次 随机数 2 arr[2]=3交换arr[0]=1后{3,2,1,4,5} //{3,2,1,4,5} 第二次 随机数 0 arr[0]=3交换arr[1]=2后{2,3,1,4,5} //取一个临时temp 存放arr[当次的] int temp=arr[i]; //将arr[随机下标]存放在arr[当次的] arr[i]=arr[randomIndex]; //将temp里存放的arr[当次的]放到arr[随机数] arr[randomIndex]=temp; } for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }