というパッケージにLotSelectionとの2 つのクラスがあります。と の 2 つのメソッドがあります。0 から 49 までの 50 個の整数の ArrayList を返し、それをスクランブルすることを意図しています。LotPool() で生成された ArrayList からの最初の 6 つの整数を含む 6 要素の配列を作成するためのものです。LotGenlotterynumberselectorLotSelectionLotPool()WinningSequence()LotPool()WinningSequence()
のコードですLotSelection。
package lotterynumberselector;
import java.util.ArrayList;
import java.util.Collections;
public class LotSelection {
ArrayList<Integer> LotPool() {
ArrayList<Integer> sequencedraw = new ArrayList<Integer>();
for(int i = 0; i < 49; i++) {
sequencedraw.add(i);
}
Collections.shuffle(sequencedraw);
return sequencedraw;
}
int[] WinningSequence() {
int[] WinningSequence = new int[6];
int j = 0;
while (j < 6) {
WinningSequence[j] = LotPool().get(j);
j++;
}
return WinningSequence;
}
}
の目的は、 によって作成された出力が期待されるタスクを実行しているLotGenかどうかをテストすることです。LotSelectionしかし、WinningSequence() からの出力は LotPool() から作成された最初の 6 つの数値と一致しませんでした。LotGenまたはのコードがLotSelection予期しない結果を生み出しているためかどうかはわかりません。LotPool()50 要素の ArrayList を 1 つ作成し、別の ArrayList をWinningSequence()作成しているため、異なる 50 要素の ArrayList から配列を作成しているためだと思わLotPool()れますが、よくわかりません。
のコードは次のLotGenとおりです。
package lotterynumberselector;
import java.util.ArrayList;
import java.util.Arrays;
public class LotGen {
public static void main(String [] args) {
LotSelection a = new LotSelection();
ArrayList<Integer> LotPool = new ArrayList<Integer>();
LotPool = a.LotPool();
System.out.println(LotPool);
int[] WinSeq = new int[6];
WinSeq = a.WinningSequence();
System.out.println(Arrays.toString(WinSeq));
}
}