Java for цикл для создания n-го количества объектов

StackOverflow https://stackoverflow.com/questions/1815955

  •  08-07-2019
  •  | 
  •  

Вопрос

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

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

    }

Будем признательны за любую помощь

Это было полезно?

Решение

//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 размером, если он известен (как в вашем случае)

Другие советы

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

Изменение

p = new Player

Для

p = new Player();

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

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

p = new Player();

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top