こんにちは私は、なぜこのコードが私が望んでいたように機能しないのかを理解しています。
私が基本的に必要としているのは、charとintを生成して配列リストに入れるランダムオブジェクトです。ただし、生成されたものが配列リストで同じものと一致する場合は、番号を再度生成し、それが存在するかどうかを確認する必要があります。存在しない場合は、配列リストに追加されます。
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]などの繰り返しがまだあります。
どうもありがとう!