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

1. 流程图

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

pie
  title 生成不重复数的流程
  "初始化" : 1
  "生成随机数" : 2
  "检查是否重复" : 3
  "重复,重新生成" : 4
  "不重复,添加到结果列表" : 5
  "继续生成直到满足条件" : 6

2. 实现步骤

按照上面的流程图,我们可以将实现步骤分为以下几个步骤:

  1. 初始化一个结果列表,用于存储不重复的随机数。
  2. 生成一个随机数。
  3. 检查该随机数是否已经存在于结果列表中。
  4. 如果已经存在,则回到步骤2重新生成随机数。
  5. 如果不存在,则将该随机数添加到结果列表中。
  6. 重复步骤2-5直到满足要求的个数。

3. 代码实现

下面是具体的代码实现,使用注释标识了每一行代码的作用:

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;

public class RandomGenerator {

    public static List<Integer> generateUniqueRandomNumbers(int count, int min, int max) {
        List<Integer> result = new ArrayList<>(); // 初始化结果列表
        Random random = new Random();

        while (result.size() < count) { // 继续生成直到满足要求的个数
            int randomNumber = random.nextInt(max - min + 1) + min; // 生成随机数
            if (!result.contains(randomNumber)) { // 检查是否重复
                result.add(randomNumber); // 不重复,添加到结果列表
            }
        }

        return result;
    }

    public static void main(String[] args) {
        List<Integer> randomNumbers = generateUniqueRandomNumbers(10, 1, 100);
        System.out.println(randomNumbers);
    }
}

4. 结果展示

运行上述代码,将会得到一个包含10个1到100之间不重复随机数的列表,例如:

[45, 16, 92, 8, 77, 51, 35, 95, 29, 63]

以上就是实现Java随机生成不重复数的方法,希望对你有所帮助!