12位Java中的数字唯一随机数生成

Ume*_*thi 15 java

我正在开发一个应用程序,我们需要生成一些唯一的数字,实际上没有预定义的限制因此使用java UUD生成器并且工作正常.现在我们给出了生成12位唯一随机数的新要求.

任何人都可以指出一些好的方法/算法来实现这一点,因为我在UUID生成的数字中看不到任何可能性.

提前致谢

dog*_*ane 30

通过呼叫生成每个数字random.nextInt.为了保持唯一性,您可以通过将它们保存在一个集合中并检查该集合是否包含您每次生成的数字来跟踪到目前为止使用的随机数.

public static long generateRandom(int length) {
    Random random = new Random();
    char[] digits = new char[length];
    digits[0] = (char) (random.nextInt(9) + '1');
    for (int i = 1; i < length; i++) {
        digits[i] = (char) (random.nextInt(10) + '0');
    }
    return Long.parseLong(new String(digits));
}
Run Code Online (Sandbox Code Playgroud)