Hinzufügen von arrays zu ArrayList
Ich versuche, zu produzieren, eine Art "lucky dip" - lotto number generator. Im moment wird der code produzieren die gewünschten Ergebnisse, aber ich würde wirklich gerne die arrays in eine arraylist. Hier mein code bisher:
Ticket-Klasse:
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("***************************************");
}
}
Zahlen Klasse:
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");
}
}
Den Ticket-Klasse erhalten die numberOfLines vom Benutzer zur Laufzeit, dann drucken aus der ersten Hälfte des lotto-ticket und verwenden Sie dann die Zahlen, die Klasse zu generieren und drucken Sie die Zufallszahlen, formatieren Sie Sie, drucken Sie Sie auf dem Bildschirm, und schließlich drucken Sie die unten auf dem ticket.
Was ich tun sollte wirklich, haben die arrays aus den Zahlen der Klasse gespeichert werden, in einer arraylist in der Ticket-Klasse und formatieren Sie die Zeilen und drucken Sie Sie von der Ticket-Klasse.
Frage 1: Wie würde ich mich über hinzufügen die zufällige Anzahl der Linien (arrays) in einer arraylist in der Klasse Ticket?
Frage 2: Wie würde ich formatieren Sie die Linien, wenn Sie in einer arraylist -?
- Warum diese
pool
Liste? Dies macht keinen Sinn für mich. Verwenden Sie einfachrandomNumber
. - Sein, weil es das populateArray () - Methode muss vermeiden Sie Duplikate, Sie können nicht zeichnen Sie zwei 6er im lotto, zum Beispiel, so dass Sie nicht haben, können Sie es auf die lotto-line.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Machen Sie eine Liste von arrays, die Sie benötigen, zu erklären, dass die Liste als holding ein array.
Sobald Sie dass haben, benötigen Sie zwei Schleifen, um die Anzeige der Ergebnisse. Eine Iteration über die Felder in die Liste und den du jetzt hast, auf drucken, um das array von zahlen.
ticket()
.