Frage

Ich brauche Hilfe. Ich möchte eine for-Schleife erstellen, die n Anzahl der Objekte einer Klasse erzeugt, und dann fügt sie in eine Arraylist. So etwas wie folgt aus:

//Player is a custom class 
ArrayList<Player> numberofPlayersArray;
numberofPlayersArray = new ArrayList<Player>();

//n is a variable for the number of Player class objects that I want to create
  for(int i = 0; i < n; i++)
  {

    //this is what I can come up with but I am missing something 

     Player p;
     p = new Player
     numberofPlayersArray.add(p);

    }

Jede mögliche Hilfe geschätzt

War es hilfreich?

Lösung

//Player is a custom class 
ArrayList<Player> numberofPlayersArray = new ArrayList<Player>(n);

//n is a variable for the number of Player class objects that I want to create
for(int i = 0; i < n; i++) {

    //this is what I can come up with but I am missing something 

     Player p = new Player();
     numberofPlayersArray.add(p);
}

Beachten Sie, dass es besser ist, die ArrayList mit der Größe zu initialisieren, wenn es (wie in Ihrem Fall) bekannt ist

Andere Tipps

Ihr Code sieht syntaktisch korrekt mit einer Ausnahme.

Ändern

p = new Player

p = new Player();

Ich gehe davon aus der Variable n deklariert und initialisiert und die Player Klasse ist mit einem argless Konstruktor definiert.

Ich sehe nicht ein Problem hier, nur tun

p = new Player();

(aber dies könnte nur gewesen ein Tippfehler) und die Spielerliste wird mit n verschiedenen Spielern Objekten gefüllt werden.

Beachten Sie, dass ich nur unter der Annahme, möchten Sie den Standard-Konstruktor für Player verwenden.

Naming Hinweis: Sie sollten eine Liste ‚..Array‘ nennen, es sei denn, Sie selbst verwirren wollen;) Nur nennen es ‚..List‘

Vergessen Sie nicht an der Schnittstelle (anstelle der konkreten Klasse) zu codieren.

List<Player> numberofPlayers = new ArrayList<Player>(n);

vergessend, dies zu tun (oder zu wissen, nicht darüber) ist ein gemeinsamer Anfänger Fehler.

Wenn Sie sich entscheiden, später auf eine alternative Liste Implementierung wechseln (LinkedList oder vielleicht eine Google-Sammlung oder eine Apache-Commons-Sammlung Liste) Sie werden nicht jede Bezugnahme auf die Liste ändern müssen -. Nur die anfängliche Zuteilung

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top