javaRandom如何生成不重复的随机数
时间: 2023-09-02 18:12:09 浏览: 131
Java实现生成n个不重复的随机数
Java中可以使用Random类的nextInt()方法来生成随机数,但是它不保证生成的随机数不重复。如果需要生成不重复的随机数,可以考虑以下两种方法:
1.使用Set集合存储生成的随机数,每次生成时判断是否已经存在,如果存在则重新生成。
示例代码:
```java
Set<Integer> set = new HashSet<>();
Random random = new Random();
int num;
while (set.size() < n) {
num = random.nextInt(range);
if (!set.contains(num)) {
set.add(num);
}
}
```
2.使用Fisher-Yates算法对一个数组进行随机排序,然后取前n个数。
示例代码:
```java
int[] arr = new int[range];
for (int i = 0; i < range; i++) {
arr[i] = i;
}
Random random = new Random();
for (int i = range - 1; i > 0; i--) {
int j = random.nextInt(i + 1);
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
int[] result = Arrays.copyOf(arr, n);
```
阅读全文