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 einfach randomNumber.
  • 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.
InformationsquelleAutor Arcadian | 2012-01-21
Schreibe einen Kommentar