【发布时间】:2020-04-04 10:37:11
【问题描述】:
下面的方法创建一个给定大小的 int 类型的一维数组,并将值 1 随机分配给数组的给定百分比。我不完全理解这个例子中 nextInt 的使用。如何确保在 while 循环的每次迭代中选择不同的索引,而不是在前一次迭代中已经选择的索引。
import java.util.Random;
...
int[] randomIntArray(int size, double percent) {
int n = (int) (size * percent);
int[] array = new int[size];
Random r = new Random();
while(n > 0) {
int next = r.nextInt(size);
if (array[next] != 0) continue;
array[next] = 1;
n--;
}
return array;
}
【问题讨论】: