Pergunta

Eu preciso de alguma ajuda. Eu quero criar um loop que cria n número de objetos de uma classe, e em seguida, adiciona-los em um ArrayList. Algo parecido com isto:

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

    }

Qualquer ajuda seria apreciada

Foi útil?

Solução

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

Note que é melhor para inicializar o ArrayList com o tamanho, se for conhecida (como no seu caso)

Outras dicas

Seus olhares código sintaticamente corretas com uma exceção.

Mudança

p = new Player

para

p = new Player();

Estou assumindo a variável n é declarado e inicializado ea classe Player é definido com um construtor argless.

Eu não vejo um problema aqui, basta fazer

p = new Player();

(mas isso pode ter sido apenas um erro de digitação) eo playerlist será preenchida com n objetos diferentes Player.

Note, que eu só estou supondo, você quer usar o construtor padrão para o jogador.

Naming dica: você não deve citar List '..Array', a menos que você quer confundir mesmo;) Apenas o nome é ..List '

Não se esqueça de código para a interface (em vez da classe concreto).

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

Esquecer de fazer isso (ou não saber sobre ele) é um iniciantes erro comum.

Se você decidir mudar para uma implementação alternativa lista mais tarde (LinkedList ou talvez uma coleção Google ou uma lista de Apache Commons Collection) você não terá que mudar a cada referência à lista -. Apenas a alocação inicial

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top