我有一个返回数字的方法:
public String getNum()
{
Random random = new Random();
return random.nextInt(1000) + "";
}
我有这个存储对象的方法
public void store(User user)
{
String str = getNum();
user.setIdCode(str);
for (User users: userList)
{
if(users.getId() == user.getId())
{
user.setIdCode(getNum);
}
}
}
如果ID激动,则重新设置ID。可以肯定地检查该ID是否第一次存在,但是第二次设置该ID大约如何。可能会重复相同的数字。同时,我们不能陷入无限循环。
答案 0 :(得分:0)
您可以尝试的是在Set
中添加一些随机数,然后在需要时分别使用它们。
我的意思是,如果您每次都尝试获取一个随机数,则可以一次存储一些随机数,然后在需要时逐个检索它们。
在代码中,将其放入称为storeRandomNumbers()
的某种方法中,并在程序的开头进行调用。另外,将Set
声明为全局变量。
您还可以创建一个单独的变量来跟踪已用完了多少个随机数,并使用它从Set
中检索下一个随机数。
代码看起来像这样(根据您的需要进行更改):
Random rand = new Random();
Set<Integer> uniqueRandoms = new HashSet<>();
while (uniqueRandoms.size()<10){
uniqueRandoms.add(rand.nextInt(11));
}
for (Integer i : uniqueRandoms){
// System.out.print(i+" ");
// retrieve them from here and use them whenever you want
}
编辑:
是的,因为@Andreas给出了建议的链接,所以您不要将字符串与==
进行比较,而是使用equals()
方法。