Java生成非重复随机数

标签 java random duplicates

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

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

这是我目前所拥有的:

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/16000196/

相关文章:

java - 查找所有没有 NoClassDefFoundError 的私有(private)字段

JavaScript 通过递归实现随机数

java - 如何选择范围内的随机数,但加权到该范围的一部分? ( java 语)

java - 用于覆盖 XML 定义的 Bean 注释 - Spring

java - 带参数调用main方法时出错

带有函数链接表达式的 Java8 可选

shell - Unix shell - 如何让提示符随机变化

ios - 如何避免由于多次触发函数而在 tableView 上出现重复的项目?

java - 检查 hashmap 中的值是否已经存在

php - 双重复 key 更新输入错误