2017-12-08 11 views
0

ArrayList内で元のオブジェクト値を変更する必要があるコードがあります。ここでコードはどのように動作するのですが、元のオブジェクトの値が変更されるとは思いません。arraylist内のオブジェクトを編集する

for (int i = 0; i < pairedSystems.size(); i++) { 
     System sys = (System) pairedSystems.get(i); 
     if (sys.id() == system.id()) { 
      sys.addPower((int) pairedId.get(i), amount); 

     } 
    } 

検索されたオブジェクトがArrayList内で変更されることを保証するコードの種類が必要です。どんな助けもありがとう!

+1

復帰配列リストを、あなたの方法であなたがオブジェクトの編集が完了していると、それが以前に渡されたArrayListに割り当てるときに? –

+0

@RAX_Muh_Taz Hmm。それはうまくいくかもしれない。私はそれを撃つだろう。 – OneSurvivor

+0

新しいオブジェクトではありません。既存のオブジェクトへの新しい参照を作成するだけで、オブジェクトが何であっても変更されるようになります。 –

答えて

1

ArrayList.set()を使用すると、特定のインデックスに値を設定できます。オブジェクトを変更した後、インデックスにオブジェクトを設定します。

pairedSystems.set(i, sys)

+1

答えをありがとう!それは魅力のように働く。 – OneSurvivor

関連する問題