嗨,我弄清楚爲什麼這個代碼不工作我怎麼想它的工作方式..生成對象和投入ArrayList中,沒有重複
我基本上想要的是有一個char隨機對象,一個int生成並將其放入一個數組列表中。但是,如果在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;
}
有一次,我期待通過ArrayList中,仍然有一些重複,例如[A1,A1,A2]或[A2,A2,A3]
非常感謝!
嘗試使用set.Is它ok – PSR 2013-03-04 14:27:30
你知道什麼'包含'在做內部?你是否爲'RegistrationNumber'實現了equals?也許你應該使用'Set'而不是'List'。 – 2013-03-04 14:28:20
您是否閱讀過包含方法的API文檔? – 2013-03-04 14:29:26