Could You please advise why this random array generator method works if array size is set to be smaller than range of values numbers can take, but it does not work otherwise. For example method works if n=10, max=100. But it does not return anything if n=10, max=5. Also, could somebody please explain why boolean markDup variable is used here? Thanks in advance for insights.
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;
}
Aucun commentaire:
Enregistrer un commentaire