生成一个不重复的随机数组
import java.util.Random; public class NoR { public static void main(String[] args) { //随机数 Random r=new Random(); //目标随机数组的范围 int len=9; //目标 存放随机数的数组 int [] arr=new int[len]; //第一个放入数组中的 arr[0]=r.nextInt(len); //开始后面的值和前面的值比较 System.out.println("arr[0]:"+arr[0]); for (int i = 1; i <len ; ) {//后一个值 //随机数 temp 如果和前一个数不一样 temp赋值给arr[i] int temp=r.nextInt(len); //给flag一个初始值,下面需要定义真和假的两种情况
//,如果仅定义一种情况 会出现死循环 boolean isWeiYi=true; System.out.println("temp:"+temp); //定义一个计数器 避免flag为false时死循环 int count=0;//相等的次数 for (int j = 0; j < i; j++) {//前一个值 System.out.println("开始------------"); //如果相等 跳出内循环 到外循环 再次获取新的随机数 if(temp==arr[j]){ isWeiYi=false;//定义了不唯一的情况 count++; System.out.println(temp+"和"+arr[j]+"相等"); break; } } //没有一次相等时 说明没有重复 if(count==0){ isWeiYi=true;//定义了唯一的情况 } //当flag为真的时候 执行i++ if(isWeiYi==true){ arr[i]=temp; i++; System.out.println(temp+":是唯一的"); } } for (int i = 0; i <len ; i++) { System.out.println(arr[i]); } } }