質問

助けが必要です。クラスのn個のオブジェクトを作成し、それらをarraylistに追加するforループを作成します。このようなもの:

//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 を初期化する方が良いことに注意してください

他のヒント

コードは1つの例外を除いて構文的に正しいように見えます。

変更

p = new Player

to

p = new Player();

変数 n が宣言および初期化され、 Player クラスが引数なしのコンストラクタで定義されていると仮定しています。

ここでは問題は表示されませんが、表示されるだけです

p = new Player();

(ただし、これは単なるタイプミスである可能性があります)、playerlistにはn個の異なるPlayerオブジェクトが入力されます。

注意してください、私はただ仮定している、あなたはプレーヤーのデフォルトコンストラクタを使用したい。

命名のヒント:混乱させたくない限り、リストに「..Array」という名前を付けるべきではありません;)単に「..List」という名前を付けます

(具象クラスではなく)インターフェイスにコーディングすることを忘れないでください。

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

これを行うのを忘れること(またはそれを知らないこと)は、一般的な初心者の間違いです。

後で別のリストの実装(LinkedListまたはGoogle CollectionまたはApache Commons Collectionリスト)に切り替える場合、リストへのすべての参照を変更する必要はありません-最初の割り当てだけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top