سؤال

وانا بحاجة الى بعض المساعدة. أريد أن إنشاء لحلقة إنشاء عدد ن من وجوه فئة، ومن ثم يضيفها إلى 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 مع منشئ argless.

وأنا لا أرى مشكلة هنا، فقط تفعل

p = new Player();

(ولكن هذا قد يكون مجرد خطأ مطبعي)، وسوف يتم ملؤها playerlist مع ن الأجسام لاعب مختلف.

ملحوظة، أنني مجرد افتراض، كنت تريد استخدام منشئ الافتراضي لاعب.

وتسمية تلميح: يجب أن لا تسمية قائمة "..Array، إلا إذا كنت تريد أن تخلط بين نفسك؛) مجرد تسميته" ..List '

لا تنس أن رمز إلى واجهة (بدلا من فئة محددة).

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

ونسيان للقيام بذلك (أو لا يعرفون عن ذلك) هو خطأ مبتدئين المشترك.

إذا قررت التحول إلى تنفيذ قائمة البديل في وقت لاحق (قائمة متصلة أو ربما مجموعة Google أو قائمة اباتشي العموم مجموعة) أنك لن تضطر إلى تغيير كل إشارة إلى قائمة - فقط تخصيص الأولي

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top