ArrayListに挿入する2次元の配列値を扱っています。しかしこれはforループで行われ、二次元配列値の値は、変数がただちに一時変数として使用されるのでループが実行されると変更されます(これにより、ArrayListに格納されている変数はすべてこの変数が変わります)。 ループが完了したときにArrayListの内容を出力しようとすると、すべての値が同じになります。変数のコピーを作成してArraylistに追加
for(int i = 0; i <= Counter; i++)
{
if(Xhavetomove >= i)
arrayvalue[0][0] = this.Xspeed;
else
arrayvalue[0][0] = 0;
if(Yhavetomove >= i)
arrayvalue[0][1] = this.Xspeed;
else
arrayvalue[0][1] = 1;
System.out.println(arrayvalue[0][1]);
Object.movement.add(arrayvalue);
}
とにかく値自体を保存することはできますか?
例:ループが最初に実行されたときの値は「5,5」ですが、ループが完了したときにArrayListを出力すると、すべての値が「5,1」に変わります。
あなたは、単一の配列値を更新していると何をしたいかによって定義されている何
。私が見ることができるArrayListはありません。あなたが "add"と呼んでいることを意味しない限り。しかし、常に同じ値を追加し、同じ値を変更します。 –
私はあなたが[ArrayList](http://docs.oracle.com/javase/1.5.0/docs/api/java/util/ArrayList.html)と[Array](http:// www。 go4expert.com/forums/showthread.php?t=1162)。 – Rajkiran