【发布时间】:2016-01-02 11:22:40
【问题描述】:
如果数组大小设置为小于数字可以采用的值范围,您能否告知为什么这种随机数组生成器方法有效,但否则它不起作用。例如,如果n = 10 和max = 100,则方法有效。但如果n = 10 和max = 5 则不会返回任何内容。
另外,有人能解释一下为什么在这里使用boolean markDup 变量吗?
提前感谢您的见解。
public static int[] getRandomArray(int n, int max) {
Random random = new Random();
int[] randomArray = new int[n];
for (int j = 0; j < n;) {
int randomNumber = random.nextInt(max - 1);
boolean markDup = false;
for (int indexRandomArray = 0; indexRandomArray < n; indexRandomArray++) {
if (randomArray[indexRandomArray] == randomNumber) {
markDup = true;
break;
}
}
if (!markDup) {
randomArray[j] = randomNumber;
j++;
}
}
for(int x:randomArray) System.out.print(x+" ");
System.out.println();
return randomArray;
}
【问题讨论】:
标签: java arrays random generator