我需要一些帮助。我想创建一个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 Collection或Apache Commons Collection列表),您将不必更改列表的每个引用 - 只是初始分配。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top