Java 检查未重复的随机数
我有一个返回数字的方法:Java 检查未重复的随机数,java,loops,random,Java,Loops,Random,我有一个返回数字的方法: 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) {
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时如何。有可能重复相同的数字。同时,我们不能进入无限循环 您可以尝试在
集合中添加一些随机数,然后在需要时单独使用它们
我的意思是,如果你每次都想得到一个随机数,你可以一次存储一些随机数,然后在需要的时候一个接一个地检索它们
在代码中,将其放入名为storeRandomNumbers()
的方法中,并在程序开始时调用它。另外,将集合
声明为全局变量
您还可以创建一个单独的变量来跟踪使用了多少随机数,并使用它从集合中检索下一个随机数
代码如下所示(根据需要进行更改):
Random rand=new Random();
Set uniqueRandoms=new HashSet();
while(uniqueRandoms.size()可能重复的@stdunbar我想OP并不是在问为什么会出错,他更关心的是如果重复的id被提供给另一个用户会发生什么。嘿@MajdaElferjani确实通过点击答案旁边的V型勾号按钮来标记答案为正确,这有助于将来读者了解这个问题,我很感激我也是。干杯!:)