Ich arbeite mit zweidimensionalen Array-Werte, die in eine ArrayList eingefügt werden sollen. Dies geschieht jedoch in einer for-Schleife und der Wert des zweidimensionalen Array-Wertes wird geändert, während die Schleife ausgeführt wird, da sie nur als temporäre Variable verwendet wird (wodurch alle in der ArrayList gespeicherten Variablen geändert werden) Diese Variable ändert sich). Also, wenn ich versuche, den Inhalt der ArrayList auszudrucken, wenn die Schleife fertig ist, sind alle Werte gleich.Erstellen Sie eine Kopie einer Variablen und fügen Sie zu 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);
}
Gibt es trotzdem kann ich es den Wert selbst speichern lassen?
Zum Beispiel: Das erste Mal, wenn die Schleife läuft, ist der Wert "5,5", aber wenn ich die ArrayList ausdrucke, wenn die Schleife fertig ist, sind alle Werte zu "5,1" geworden.
Sie tun nur einen einzigen Array-Wert zu aktualisieren. Es gibt keine ArrayList, die ich sehen kann, es sei denn, du meinst das Ding, das du anrufst, "add" an. Aber Sie fügen immer denselben Wert hinzu und ändern denselben Wert. –
Ich denke, Sie sind verwirrt zwischen [ArrayList] (http://docs.oracle.com/javase/1.5.0/docs/api/java/util/ArrayList.html) und [Array] (http: // www. go4expert.com/forums/showthread.php?t=1162). – Rajkiran