Java生成不重复随机数

标签 java random duplicates

我想在 Java 中创建一组不重复的随机数。

例如,我有一个数组来存储 10,000 个从 0 到 9999 的随机整数。

这是我到目前为止所拥有的:

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);
        }
    }
}

但是上面的代码会创建重复项。如何确保随机数不重复?

最佳答案

Integer[] arr = {...};
Collections.shuffle(Arrays.asList(arr));

例如:

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生成不重复随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45988304/

相关文章:

php - 优化大型数据库中的 JOIN ORDER BY RAND() mysql 查询

Java if 语句终止错误

java - JAXB 构造函数注入(inject)

c# - 方法 string.Replace( ) 不起作用

Python 错误 : "cannot find path specified"

sql - 如何过滤相反的重复项

sql-server - MS SQL - 将结果连接到一个连接的表/列中,其余的都是重复值

python - Pandas 合并(如何 ="inner")结果大于两个数据帧

java - 通用异常处理

java - 根据参数在数据库中查找固定数量的 RANDOM 用户的最佳方法是什么?