使用预定义库在Java中生成4位唯一随机数?

Dee*_*epu 1 java random

我想在Java中生成4位唯一随机数.

假设我运行应用程序1000次,然后每次我应该得到唯一的随机数.

我尝试使用UUID,但它是非常长的随机代码.我想要4位数的随机码.

到目前为止,我尝试使用以下代码 -

int num = -1;

ArrayList<Integer> arNumber = new ArrayList<Integer>();
for(int x = 0; x < 10; x++)
{
    arNumber.add(x);
}
Collections.shuffle(arNumber);

String strNum = "";
for(int i = 0; i < 4; i++)
    strNum = strNum + arNumber.get(new Random().nextInt(10));

num = Integer.parseInt(strNum);
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常,但我怀疑它会在几千之后重复一个数字.

Java中是否有可用的内置/预定义功能/库/算法?

Evg*_*eev 5

在我的理解中,如果你想生成一个4位数的唯一随机数,则意味着0到9999之间的数字.在这种情况下

ArrayList<Integer> arNumber = new ArrayList<Integer>();
for (int x = 0; x < 10; x++) { 
    ...
Run Code Online (Sandbox Code Playgroud)

将在列表中仅生成10个数字.我会这样做的

class RandomGenerator {
    List<Integer> ints = new ArrayList<>();
    int i = 0;

    RandomGenerator() {
        for (int i = 0; i < 10000; i++) {
            ints.add(i);
        }
        Collections.shuffle(ints);
    }

    int nextInt() {
        return ints.get(i++);
    }
}
Run Code Online (Sandbox Code Playgroud)