現在、私のJavaプログラムでは、印刷時に重複する法律を印刷しないようにしようとしています。ソフトウェアは1から3の法律を印刷するランダムなピッキングですが、重複は望ましくありません。私はまだまだJavaの新しいもので、これまでにいくつかのプログラムしか書いていません。これはこれまでに書いた中で最も複雑なものです。配列から重複を削除するためのハッシュセットJava
今は、印刷物に重複がなくなるまで重複が見つかると、ソフトウェアでランダムをもう一度実行します。とにかくこれを行うにはありますか?
/**
*Seeds is a random number to pick which if statement will be used.
* telling the software how many laws to use during its random
* generation process
*
*/
Random seeds = new Random();
seed = seeds.nextInt(3) + 1;
if (seed == 1){
/**Beginning of random law selection for universe. Must find way
*Must find way to get rid of duplicate answers
*/
final String[] Laws = {"Standard Physics", "Magic", "Mad Science",
"Psionics", "Substandard Physics","Exotic"};
Random random = new Random();
int index = random.nextInt(Laws.length);
System.out.println("Law:" + Laws[index]);
}
else if (seed == 2) {
final String[] Laws = {"Standard Physics", "Magic", "Mad Science",
"Psionics", "Substandard Physics","Exotic"};
Random random = new Random();
int index = random.nextInt(Laws.length);
int index2 = random.nextInt(Laws.length);
System.out.println("Law:" + Laws[index] + "," + Laws[index2]);
}
else {
final String[] Laws = {"Standard Physics", "Magic", "Mad Science",
"Psionics", "Substandard Physics","Exotic"};
Random random = new Random();
int index = random.nextInt(Laws.length);
int index2 = random.nextInt(Laws.length);
int index3 = random.nextInt(Laws.length);
System.out.println("Law: " + Laws[index] + "," + Laws[index2] +
"," + Laws[index3]);
}
同じ文字列配列の3つの宣言がうまくいかない場合は、他のブロックがある場合は一番上に一度宣言してください –