Java实现不重复随机数的方法
介绍
在Java开发中,有时我们需要生成一组不重复的随机数。本文将向刚入行的开发者介绍如何实现这个需求。
流程
下面是实现不重复随机数的流程图:
开始 -> 创建一个空的集合(set) -> 循环生成随机数 -> 检查随机数是否已存在 -> 若不存在,将随机数添加到集合中 -> 若存在,重新生成随机数 -> 循环结束 -> 返回集合
代码实现
下面是每一步需要做的事情以及相应的代码实现:
- 创建一个空的集合(set)来存储不重复的随机数。
// 创建一个HashSet集合,用来存储不重复的随机数
Set<Integer> set = new HashSet<>();
- 循环生成随机数,直到集合中的元素个数达到指定数量。
// 定义需要生成的随机数的个数
int targetCount = 10;
// 循环生成随机数,直到集合中的元素个数达到指定数量
while (set.size() < targetCount) {
// 生成随机数的代码
}
- 生成随机数的代码可以使用Java的
Random
类来实现。
// 创建一个Random对象
Random random = new Random();
// 生成随机数,范围是[0, 100)
int randomNumber = random.nextInt(100);
- 检查随机数是否已存在于集合中,若不存在则将其添加到集合中。
// 检查随机数是否已存在于集合中
if (!set.contains(randomNumber)) {
// 若不存在,则将随机数添加到集合中
set.add(randomNumber);
}
完整代码示例
下面是一个完整的示例代码:
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class UniqueRandomNumberGenerator {
public static void main(String[] args) {
// 创建一个HashSet集合,用来存储不重复的随机数
Set<Integer> set = new HashSet<>();
// 定义需要生成的随机数的个数
int targetCount = 10;
// 循环生成随机数,直到集合中的元素个数达到指定数量
while (set.size() < targetCount) {
// 创建一个Random对象
Random random = new Random();
// 生成随机数,范围是[0, 100)
int randomNumber = random.nextInt(100);
// 检查随机数是否已存在于集合中
if (!set.contains(randomNumber)) {
// 若不存在,则将随机数添加到集合中
set.add(randomNumber);
}
}
// 打印生成的不重复随机数
for (int number : set) {
System.out.println(number);
}
}
}
上述代码会生成10个不重复的随机数,并将其打印输出。
结论
通过以上步骤的实现,我们可以生成一组指定数量的不重复随机数。使用Set
集合来存储随机数保证了不重复性,而使用Random
类来生成随机数保证了随机性。希望本文能帮助刚入行的开发者理解并实现这一需求。