嗨,我正在弄清楚为什么这段代码不能按照我想要的方式工作..
我基本上想要的是一个随机对象,它有一个 char 和一个 int 生成并将其放入 arraylist 中。但是,如果生成的与 arraylist 中的匹配相同,则它必须再次重新生成该数字并检查它是否存在。如果它不存在,它将被添加到数组列表中。
private final char letter;
private final int num;
private static Collection<RegistrationNumber> REGISTRATION_NUMBER = new ArrayList<RegistrationNumber>();
private RegistrationNumber(){
Random rand = new Random();
this.num = (1+(rand.nextInt(3)));
this.letter = Character.toUpperCase((char)(rand.nextInt(1)+'a'));
}
public static RegistrationNumber getInstance(){
boolean foo = false;
RegistrationNumber rn = null;
while(!foo){
rn = new RegistrationNumber();
if(!REGISTRATION_NUMBER.contains(rn)){
REGISTRATION_NUMBER.add(rn);
foo=true;
}
}return rn;
}
一旦我查看了数组列表,仍然有一些重复,例如 [A1,A1,A2] 或 [A2,A2,A3]
非常感谢!