2016-04-17 15 views
0

したがって、私のループがarraylistで渡された回数のインデックス番号で特定のオブジェクトを削除する必要があります。他のオブジェクトのインデックスを変更せずにarraylistからオブジェクトを削除する

は私がArrayListの

のインデックス0が、上のオブジェクトを持っている私のオブジェクトを削除したいと言うことができますインデックス1、インデックス2(など)私は、インデックスを削除する前に、とまだ同じインデックス番号である必要が0

 for (int i = 0; i < 4 i++) { 
      player thisPlayer = players.get(i); 

      if (not important) { 
       players.remove(thisPlayer); 
      } 
     } 

プレーヤー1を削除する必要がある場合、他のプレーヤーは同じインデックスを維持する必要があります。

私は何をしますか?

+1

の線に沿って何かを試みることができます。最後から削除する場合を除いて、要素を削除すると、おそらく知っているように、他の要素が前方に移動します。 – Logan

+1

要素を 'Map 'に格納することができます。他のキーに影響を与えずに任意の要素(およびキー)を削除することができます。 –

+0

ループが終了した後に**インデックスが変更されないままであることが実際に重要なのですか?またはループを機能させることが重要ですか? –

答えて

3

代わりの

players.remove(thisPlayer); 

を使用して、あなたがnull`なので `にその要素の値を設定することができ

players.set(players.indexOf(thisPlayer),null); 
+0

私のアイデアはこれに非常に類似しているようにマップを使用すると信じていますnullの代わりに、私はいくつかのダミーのプレーヤーか何かを置くだろう – Vucko

関連する問題