Domanda

Ho bisogno di aiuto. Voglio creare un ciclo for che crea n numero di oggetti di una classe e quindi li aggiunge in un array. Qualcosa del genere:

//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);

    }

Qualsiasi aiuto sarebbe apprezzato

È stato utile?

Soluzione

//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);
}

Nota che è meglio inizializzare ArrayList con le dimensioni, se è noto (come nel tuo caso)

Altri suggerimenti

Il tuo codice sembra sintatticamente corretto con un'eccezione.

Cambia

p = new Player

a

p = new Player();

Suppongo che la variabile n sia dichiarata e inizializzata e la classe Player sia definita con un costruttore argless.

Non vedo un problema qui, basta

p = new Player();

(ma questo potrebbe essere stato solo un refuso) e l'elenco giocatori verrà popolato con n diversi oggetti Player.

Nota, sto solo supponendo, vuoi usare il costruttore predefinito per Player.

Suggerimento per i nomi: non dovresti nominare un Elenco "..Array", a meno che tu non voglia confonderti;) Basta nominarlo "..Elenco"

Non dimenticare di programmare l'interfaccia (piuttosto che la classe concreta).

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

Dimenticare di farlo (o non saperlo) è un errore comune per i principianti.

Se in seguito decidi di passare a un'implementazione di un elenco alternativo (LinkedList o forse una raccolta di Google o un elenco di raccolte di Apache Commons) non dovrai modificare tutti i riferimenti all'elenco - solo l'allocazione iniziale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top