2017-02-05 3 views
-5

私のプログラムは、イベント、参加者、チーム、結果、およびプログラムクラスのスポーツ競技です。参加者とその開始番号属性に関する最終テストで問題が見つかりました。すべての新しいオブジェクトに新しい属性値を与えます(参加者と開始番号)

参加者は追加時に開始番号が与えられます。最初は100、次は101,102などとなります。参加者102が削除され、新しい参加者が追加された場合、新しい参加者も102という番号を取得します。これは私の問題です。どうやらこれらのスタート・ナンバーは再利用されていないはずです。新しい参加者に以前に与えられていなかった新しい開始番号を与える方法はありますか?プログラムのクラスから

private int startNumber; 

public int getStartNumber() { 
     return startNumber; 
    } 

    public void setStartNumber(int startNumber) { 
     this.startNumber = startNumber; 
    } 
+ other attributes and methods 

:参加者クラスから

private void addStartNumber(Participant p) { 
     if(allParticipants == null || allParticipants.isEmpty()){ 
      p.setStartNumber(100);  
     }else{ 
      p.setStartNumber(findLastStartNumber()+1); 
     } 

    } 

    private int findLastStartNumber(){ 
     int lastNumber = 0; 

     for(int i = 0 ; i < allParticipants.size() ; i++){ 
      lastNumber = allParticipants.get(allParticipants.size()-1).getStartNumber(); 
     } 
     return lastNumber; 
    } 
+0

が –

+1

をインクリメントする前に削除された数字の配列を維持し、その最初の値を選択するには、大丈夫あなたにこの割り当てを与えた誰ですあなたはインターネットで助けを求めているのですか?また、[質問]の質問についてはこちらをご覧ください。締め切りはあなたの*締め切り日であり、私たちの締め切り日ではありませんので、質問でそれについて話すことで質問が騒がしくなります。 –

+1

締め切りの言及は、通常あなたが望むのと正反対の効果があります。ちょうどFYI。 –

答えて

0

私は右、問題を理解するとき、あなたはローカル変数の最後の開始番号を保持することができます

private int lastStartNumber = 0; 

private int getNextStartNumber(){ 
    lastStartNumber = lastStartNumber + 1; 
    return lastStartNumber; 
} 
+0

ありがとう、それは働いた! – Nathalie

0

各参加者のコンストラクタに開始番号を管理させます。

これあなたが開始番号を割り当てるために必要なだけのコードされています(存在する場合)

class Participant { 
    static int nextStartNumber = 100; 
    private int startNumber; 

    public Participant() { 
     this.startNumber = nextStartNumber++; 
    } 
} 
+0

ありがとうございます!それは@popurを働いた – Nathalie

関連する問題