使用Java for循环创建n个对象

3

我需要帮助。我想创建一个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);

    }

非常感谢您的帮助。


2
你的想法是正确的。问题出在哪里?你是在尝试编译源代码吗?如果是这样,请在 new Player 后面添加 ()。像这样:Player p = new Player(); numberOfPlayers.add(p);(假设你的 Player 类有一个默认构造函数)。 - Yngve Sneen Lindal
你的代码有什么问题吗?你收到了错误吗? - Aaron Digulla
问题是p必须为null,因为当我调用p.method()时,会出现java.lang.NullPointerException。 - Sizemj
4个回答

5

您的代码在语法上看起来是正确的,但有一个例外。

请更改

p = new Player

为了

p = new Player();

我假设变量n已经被声明和初始化,Player类已经定义一个无参构造函数。


5
//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++) {

     Player p = new Player();
     numberofPlayersArray.add(p);
}

请注意,如果已知ArrayList的大小(在您的情况下),最好使用大小来初始化。


现在我该如何调用p.method()呢?比如说:p.dosomething(); - Sizemj
你是什么意思说“我该怎么称呼它”?就按照你写的那样叫它就可以了。 - Bozho
问题是p必须为空,因为当我调用p.method()时,会出现java.lang.NullPointerException。 - Sizemj
请提出另一个问题,包括整个源代码和指向空指针异常发生位置的指针。 - Bozho

0

我这里看不出有什么问题,只需要这样做

p = new Player();

(但这可能只是一个打字错误),playerlist将填充n个不同的Player对象。

请注意,我只是假设您想使用Player的默认构造函数。

命名提示:除非您想让自己困惑,否则不应将列表命名为“..Array”。只需将其命名为“..List”即可。


0

别忘了编写接口代码(而不是具体类)。

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

忘记或不知道这一点是初学者常犯的错误。

如果您决定稍后切换到另一种列表实现(LinkedList 或者可能是 Google Collection 或 Apache Commons Collection 列表),您不必更改对列表的每个引用 - 只需更改初始分配即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接