Java怎么让多个随机数不重复

2023-12-15 7:18:39网络知识悟空

要生成多个不重复的随机数,可以使用集合(如Set)来保存已生成的随机数,并在生成新的随机数时进行判断。以下是一个示例:

import java.util.*;

pubpc class Main {
    pubpc static void main(String[] args) {
        int min = 1; // 最小值(包含)
        int max = 10; // 最大值(包含)
        int count = 5; // 随机数个数
        
        Set set = new HashSet<>();
        Random random = new Random();
        
        while (set.size() < count) {
            int randomNumber = random.nextInt(max - min + 1) + min;
            
            if (!set.contains(randomNumber)) {
                set.add(randomNumber);
            }
        }
        
        for (int number : set) {
            System.out.println(number);
        }
    }
}

以上代码会生成指定个数的不重复随机数。在循环中,我们使用 random.nextInt(max - min + 1) + min 来生成位于指定范围内的随机整数。然后,在将生成的随机数添加到集合之前,通过 set.contains(randomNumber) 判断该随机数是否已存在于集合中,如果不存在,则将其添加到集合中。

输出:

7
1
9
2
5

请注意,此方法适用于较小的范围和较小的生成数量。对于更大的范围或需要生成更多不重复随机数的情况,可能需要采用其他算法或数据结构来优化性能。另外,如果指定的范围比生成数量小,那么无法生成足够的不重复随机数。

发表评论: