Java для цикла, чтобы создать количество объектов - PullRequest
2 голосов
/ 29 ноября 2009

Мне нужна помощь. Я хочу создать цикл for, который создает n объектов класса, а затем добавляет их в массив. Примерно так:

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

    }

Любая помощь будет оценена

Ответы [ 4 ]

5 голосов
/ 29 ноября 2009

Ваш код выглядит синтаксически правильным с одним исключением.

Изменение

p = new Player

до

p = new Player();

Я предполагаю, что переменная n объявлена ​​и инициализирована, а класс Player определяется с помощью конструктора без аргументов.

4 голосов
/ 29 ноября 2009
//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);
}

Обратите внимание, что ArrayList лучше инициализировать размером, если он известен (как в вашем случае)

0 голосов
/ 29 ноября 2009

Не забывайте кодировать интерфейс (а не конкретный класс).

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

Забыть об этом (или не знать об этом) - распространенная ошибка начинающих.

Если вы решите переключиться на альтернативную реализацию списка позже (LinkedList или, возможно, коллекцию Google или список Apache Commons Collection), вам не придется изменять каждую ссылку на список - только первоначальное распределение.

0 голосов
/ 29 ноября 2009

Я не вижу здесь проблемы, просто сделайте

p = new Player();

(но это может быть просто опечатка), и список игроков будет заполнен n различными объектами Player.

Обратите внимание, что я просто предполагаю, что вы хотите использовать конструктор по умолчанию для Player.

Подсказка по именованию: вы не должны называть список «..Array», если только вы не хотите запутаться;) Просто назовите его «..List»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...