我正在嘗試生成一種幸運抽彩樂透號碼生成器。目前,代碼將產生所需的結果,但我真的想要陣列中的數組列表。這裏是我到目前爲止的代碼:將陣列添加到ArrayList
客票艙位等級:
public class Ticket
{
private int numberOfLines;
public void displayTicket(int numberOfLines)
{
Numbers numbersClass = new Numbers();
System.out.println("***************************************");
System.out.println("** **");
System.out.println("** Lotto Ticket **");
System.out.println("** **");
System.out.println("***************************************");
System.out.println("** **");
for(int i = 0; i < numberOfLines; i++)
{
numbersClass.populateArray();
numbersClass.ticket();
}
System.out.println("** **");
System.out.println("***************************************");
}
}
數類:
public class Numbers
{
// Fields
private int[] numberLine;
private int randomNumber;
private Random randomGen;
// Constructor : Initialise number array
public Numbers()
{
numberLine = new int[6];
randomNumber = 0;
randomGen = new Random();
}
// Method : Generate 6 random numbers in a range 1 to 49
public void populateArray()
{
List<Integer> pool = new ArrayList<Integer>();
for (int i = 0; i < 49; ++i)
{
pool.add(i + 1);
}
for (int i = 0; i < 6; ++i)
{
randomNumber = randomGen.nextInt(pool.size());
numberLine[i] = pool.get(randomNumber);
pool.remove(randomNumber);
}
}
// Method : Sort 6 numbers in ascending order
private int[] sortArray()
{
Arrays.sort(numberLine);
return numberLine;
}
// Method : Format and display 6 numbers to the screen
public void ticket()
{
System.out.print("** ");
for (int i = 0; i < numberLine.length; i++)
{
if (numberLine[i] < 10)
{
System.out.print(" ");
}
System.out.print(numberLine[i] + " ");
}
System.out.print(" **\n");
}
}
票證類將得到用戶在運行時的numberOfLines,然後打印出上半年然後使用Numbers類生成並打印隨機數,格式化它們,然後將它們打印到屏幕上,最後打印出票的底部。
我真的應該做的是將Numbers類中的數組存儲到Ticket類中的ArrayList中,然後格式化這些行並將它們從Ticket類打印出來。
問題1:如何將隨機數行(數組)添加到Ticket類中的數組列表中?
問題2:如果它們在數組列表中,我將如何格式化這些行?
爲什麼這個'pool'列表?這對我來說沒有任何意義。只需使用'randomNumber'。 – Kai
因爲populateArray()方法必須避免重複,所以你不能在樂透中畫出兩個6,所以你也不能把它放在樂透線上。 – Arcadian