2017-01-04 2 views
1

Ich habe eine ArrayList erstellt, in der ich Teilnehmer für ein Ereignis basierend auf Benutzereingaben hinzufügen möchte. Jeder hinzugefügte Teilnehmer erhält automatisch eine Startnummer, wobei die erste die Nummer 100 erhalten soll. Für jeden danach hinzugefügten Teilnehmer erhöht sich die Startnummer um eins (101, 102, 103 etc.). Vorschläge dazu?Generiere Nummer für Objekt, das zu ArrayList hinzugefügt wurde

Dies ist mein Code für diese bisher:

public void addParticipant() { 

    int startNumber = 100; 

    System.out.println("First name: "); 
    String name = readString(); 
    System.out.println("Last name: "); 
    String lastName = readString(); 
    System.out.println("Team: "); 
    String team = readString(); 

    allParticipants.add(new Participant(name, lastName, team, startNumber)); 

    System.out.println(name + " " + lastName + " from " + team + " with number " + startNumber + " added \n"); 
+0

Verwenden Sie einfach die Größe von 'allParticipants' und fügen Sie sie zur' startNumber' hinzu? – Paul

+0

Es gibt viele mögliche Implementierungen, die das erreichen. – Maroun

Antwort

0

Es gibt zwei einfache Möglichkeiten, dies zu tun.

Erster Weg: Anstatt die Teilnehmernummer in einer lokalen Variablen zu speichern, speichern Sie sie in einem Feld (Instanzvariable) und erhöhen sie jedes Mal um eins, wenn Sie einen neuen Teilnehmer hinzufügen. Ich würde so etwas wie dieses:

public class SomeClass { 

    private int startNumber = 100; 

    // any other code in the class... 

    public void addParticipant() { 

     System.out.println("First name: "); 
     String name = readString(); 
     System.out.println("Last name: "); 
     String lastName = readString(); 
     System.out.println("Team: "); 
     String team = readString(); 

     allParticipants.add(new Participant(name, lastName, startNumber)); 

     System.out.println(name + " " + lastName + " from " + team + " with number " + startNumber + " added \n"); 

     // Increment field startNumber 
     startNumber = startNumber + 1; 
    } 
} 

Zweiter Weg: Verwenden Sie die Größe des Arraylist als Zähler. Das ist, was ich meine:

public class SomeClass { 

    // any other code in the class... 

    public void addParticipant() { 

     int startNumber = allParticipants.size() + 100; 

     System.out.println("First name: "); 
     String name = readString(); 
     System.out.println("Last name: "); 
     String lastName = readString(); 
     System.out.println("Team: "); 
     String team = readString(); 

     allParticipants.add(new Participant(name, lastName, startNumber)); 

     System.out.println(name + " " + lastName + " from " + team + " with number " + startNumber + " added \n"); 
    } 
} 

Happy Codierung!

2

Shop Startnummer als Instanzvariable anstelle einer lokalen Variablen in der Funktion. Erhöhen Sie die Variable, nachdem Sie einen neuen Teilnehmer hinzugefügt haben.

private int startNumber = 100; 

public void addParticipant(){ 
    // Assign the startNumber to the new participant. 
    startNumber++; 
} 
Verwandte Themen