Java实现不重复随机数的方法

介绍

在Java开发中,有时我们需要生成一组不重复的随机数。本文将向刚入行的开发者介绍如何实现这个需求。

流程

下面是实现不重复随机数的流程图:

开始 -> 创建一个空的集合(set) -> 循环生成随机数 -> 检查随机数是否已存在 -> 若不存在,将随机数添加到集合中 -> 若存在,重新生成随机数 -> 循环结束 -> 返回集合

代码实现

下面是每一步需要做的事情以及相应的代码实现:

  1. 创建一个空的集合(set)来存储不重复的随机数。
// 创建一个HashSet集合,用来存储不重复的随机数
Set<Integer> set = new HashSet<>();
  1. 循环生成随机数,直到集合中的元素个数达到指定数量。
// 定义需要生成的随机数的个数
int targetCount = 10;

// 循环生成随机数,直到集合中的元素个数达到指定数量
while (set.size() < targetCount) {
    // 生成随机数的代码
}
  1. 生成随机数的代码可以使用Java的Random类来实现。
// 创建一个Random对象
Random random = new Random();

// 生成随机数,范围是[0, 100)
int randomNumber = random.nextInt(100);
  1. 检查随机数是否已存在于集合中,若不存在则将其添加到集合中。
// 检查随机数是否已存在于集合中
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类来生成随机数保证了随机性。希望本文能帮助刚入行的开发者理解并实现这一需求。