【发布时间】:2013-06-24 08:16:23
【问题描述】:
我将实现唯一随机数生成器。但是在运行它时,它有时会生成与 previous 相同的数字。这种情况下如何保证生成的数字不重复?
下面是我的代码
int refno = 0;
SecureRandom r = new SecureRandom();
refno = r.nextInt(999999999);
【问题讨论】:
-
使用同步序列而不是随机序列。你不能用随机数创建唯一的数字...
-
您可以将已经使用的随机数存储在一个集合中,如果您在该集合中找到生成的数字,则重复生成
-
顺便说一句:当你想要“一个非常大的数字”时,你可以使用常量
Integer.MAX_VALUE而不是像999999999这样的任意值。