我正在尝试生成一种幸运抽彩乐透号码生成器。目前,代码将产生所需的结果,但我真的想要阵列中的数组列表。这里是我到目前为止的代码:将阵列添加到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