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型勾号按钮来标记答案为正确,这有助于将来读者了解这个问题,我很感激我也是。干杯!:)