Pregunta

Necesito ayuda. Quiero crear un bucle for que cree n número de objetos de una clase y luego los agregue a una lista de matrices. Algo como esto:

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

    }

Cualquier ayuda sería apreciada

¿Fue útil?

Solución

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

Tenga en cuenta que es mejor inicializar ArrayList con el tamaño, si se conoce (como en su caso)

Otros consejos

Su código parece sintácticamente correcto con una excepción.

Cambiar

p = new Player

a

p = new Player();

Supongo que la variable n se declara e inicializa y la clase Player se define con un constructor sin argumentos.

No veo un problema aquí, solo hazlo

p = new Player();

(pero esto podría haber sido un error tipográfico) y la lista de jugadores se completará con n objetos de jugador diferentes.

Tenga en cuenta que solo estoy asumiendo que desea utilizar el constructor predeterminado para Player.

Sugerencia de nomenclatura: no debe nombrar una Lista '..Array', a menos que quiera confundirse;) Solo nómbrela '..Lista'

No olvides codificar en la interfaz (en lugar de la clase concreta).

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

Olvidar hacer esto (o no saberlo) es un error común de principiantes.

Si decide cambiar a una implementación de lista alternativa más adelante (LinkedList o tal vez una Colección de Google o una lista de la Colección Apache Commons) no tendrá que cambiar todas las referencias a la lista, solo la asignación inicial.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top