我想在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中是否有可用的内置/预定义功能/库/算法?
在我的理解中,如果你想生成一个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)