关于生成唯一的随机数

时间:2017-04-27 02:09:32

标签: java

  public String generateCustomerID(String id, int digit)//Customer Class

   randomGenerator = new Random();

   String index = "";

   for(int i = 1; i <= digit; i++)
   {  

       index +=  randomGenerator.nextInt(10);

   }
      return id + index;

   public void storeCustomer(Customer customer)//Shop Class
   {
    customerList.add(customer);
    HashSet<String> set = new HashSet<>();
    String number =   customer.generateCustomerID("AB", 1);

    set.add(number);
    customer.setCustomerID(number);

   }

如何确保只存储具有唯一ID的客户。例如,如果客户A的ID为“AB-1”,那么客户B应该具有不同的ID,例如“AB-8”。我试图使用Hashset,但我不确定这是解决这个问题的正确方法。我认为我不需要使用UIDD。

2 个答案:

答案 0 :(得分:0)

考虑这个解决方案

@PreRemove

关键点是 static Set<String> taken = new HashSet <>(); public static void main(String [] args) { Scanner scan = new Scanner (System.in); while (true) { System.out.println("enter id "); String id = scan.nextLine(); if (taken.contains(id)) { System.out.println("already taken"); continue; } taken.add (id); System.out.println("another [y/n]? "); if (scan.nextLine().equals("n")) break; } } 是一个字段,并使用set

进行检查

答案 1 :(得分:-3)

地方
    while(set.contains(number)){ number = customer.generateCustomerID("AB", 1); } 之前     set.add(number);customer.setCustomerID(number);