Java 高性能生成6位不重复随机数字
时间: 2023-10-01 11:03:15 浏览: 259
可以使用Java的Random类来生成随机数字,并且使用Set集合来存储已经生成的数字,以保证不重复。以下是一个可能的实现:
```java
import java.util.Random;
import java.util.Set;
import java.util.HashSet;
public class RandomGenerator {
private static final int MAX_NUM = 999999; // 最大的6位数字
private static final int MIN_NUM = 100000; // 最小的6位数字
public static int generate() {
Random random = new Random();
Set<Integer> set = new HashSet<>();
while (set.size() < MAX_NUM - MIN_NUM + 1) {
int num = random.nextInt(MAX_NUM - MIN_NUM + 1) + MIN_NUM;
set.add(num);
}
int index = random.nextInt(MAX_NUM - MIN_NUM + 1);
int result = 0;
for (int num : set) {
if (index-- == 0) {
result = num;
break;
}
}
return result;
}
}
```
在这个实现中,我们首先定义了最大和最小的6位数字,然后使用Random类生成随机数字并将其存储在Set集合中。由于Set集合的特点是不允许重复元素,所以当Set集合中的元素数量达到最大值时,我们就可以保证其中的所有数字都是不重复的。
最后,我们再使用Random类生成一个随机索引,从Set集合中取出对应的数字作为结果返回。由于Set集合是无序的,所以我们需要遍历集合来找到对应索引的数字。
阅读全文