如何用java生成不超过9位数的不重复的随机数?
时间: 2023-03-20 07:02:34 浏览: 154
利用时间生成8位不重复数
你可以使用Java的Random类来生成不重复的随机数。以下是一种可能的实现方式:
```java
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class RandomNumberGenerator {
public static void main(String[] args) {
int n = 9; // 随机数位数
int max = (int) Math.pow(10, n) - 1; // 随机数最大值
int count = 0; // 已生成的随机数数量
Set<Integer> set = new HashSet<>(); // 用于存储已生成的随机数
Random rand = new Random();
while (count < max) {
int num = rand.nextInt(max) + 1; // 生成1到max之间的随机数
if (!set.contains(num)) { // 如果set中不包含该随机数,则加入set中,并打印该随机数
set.add(num);
System.out.println(num);
count++;
}
}
}
}
```
这段代码使用了一个HashSet来存储已生成的随机数,并使用while循环来不断生成随机数直到生成了所有不重复的数字。需要注意的是,当需要生成的不重复随机数数量大于最大可用范围(即小于等于9位数的整数数量)时,这段代码会进入死循环。
阅读全文