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。
答案 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);