首页 > Java > java教程 > 如何在Java中生成不重复的随机数?

如何在Java中生成不重复的随机数?

Mary-Kate Olsen
发布: 2024-11-09 10:01:02
原创
781 人浏览过

How Can I Generate Non-Repeating Random Numbers in Java?

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

在 Java 中创建一组唯一的随机数可能是一个挑战。考虑以下场景,我们需要用 10,000 个范围从 0 到 9999 的非重复整数填充数组。

以下代码片段尝试使用 Java 内置的 Random 类解决此问题:

import java.util.Random;
public class Sort {
    public static void main(String[] args) {
        int[] nums = new int[10000];

        Random randomGenerator = new Random();

        for (int i = 0; i < nums.length; ++i) {
            nums[i] = randomGenerator.nextInt(10000);
        }
    }
}
登录后复制

但是,由于使用模运算将随机数映射到所需范围时可能发生冲突,此代码可能会产生重复的数字。为了确保数字的唯一性,我们可以利用 Java 的 Collections 类。

使用 Java Collections.shuffle() 的解决方案

Java 中生成不重复随机数的首选方法是利用 Collections.shuffle() 方法。它的工作原理如下:

  1. 创建一个数字数组 (Integer[] arr)。
  2. 使用 Collections.shuffle(Arrays.asList(arr)) 随机化元素的顺序
  3. 由于洗牌过程,随机数组现在包含唯一的数字。

例如,以下代码片段演示了此方法:

public static void main(String[] args) {
    Integer[] arr = new Integer[1000];
    for (int i = 0; i < arr.length; i++) {
        arr[i] = i;
    }
    Collections.shuffle(Arrays.asList(arr));
    System.out.println(Arrays.toString(arr));
}
登录后复制

这种方式保证了数组中每个数字都是唯一的,满足生成不重复随机数的要求。

以上是如何在Java中生成不重复的随机数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板