生成随机和唯一的整数值

时间:2020-04-06 23:27:35

标签: java

我想创建一个方法,该方法将生成0到999之间的随机和唯一数字。我试图做的是生成随机的唯一数字,然后将它们添加到向量中,以便每次我调用该方法时将生成一个随机数,然后将其与先前生成的数进行比较,以查看其是否唯一。如果不是,则重复该过程。那就是这个主意,但是每次我运行程序时,我都会得到“数组索引超出范围:0”。

我已在类的开头将向量初始化为private Vector<Integer> uniqueNums;

public int returnRandom() {
        Random r = new Random();
        int rand = r.nextInt(10000);

        if(this.uniqueNums.capacity() != 0) {
            for(int i = 0; i < this.uniqueNums.capacity(); i++) {
                if(rand == this.uniqueNums.get(i))
                    returnRandom();
            }
        }
        this.uniqueNums.add(rand);
        return rand;
    }

1 个答案:

答案 0 :(得分:1)

似乎您已经声明了uniqueNums,但未为其分配任何值。数组索引超出null范围。尝试将其初始化为一些空值,看看是否有帮助。

无论如何,这似乎是创建“唯一随机数”的奇怪方法。我会接受dnault的建议。