Dies kann von Vorteil für jeden sein, der versucht, eine ArrayList dynamisch aufzufüllen.Ausgabe überschreiben zuvor gespeicherte Variablen in ArrayList
Spikes[]
ist ein Array, das ein Spielbrett darstellt.
Darunter befindet sich eine bedingte Anweisung.
if(Spikes[inte1]>=1 && Spikes[inte2]>=1 && Spikes[destination1]>=0 && Spikes[destination2]>=0){
inte1 und inte2 sind int repräsentiert die ursprüngliche Position eines Stücks. Ziel1 und Ziel2 sind Intets, die den ursprünglichen Standort + Würfelwurf repräsentieren;
Da Spikes ein Spielbrett ist, kann die Bedingung von vielen ursprünglichen Orten erfüllt werden + Würfel rollt so viele verschiedene Ziele.
Viele mögliche Bewegungen können generiert werden, wenn die Bedingung erfüllt ist.
Mein Problem ist (wenn die Bedingung erfüllt ist), wenn ich die möglichen Bewegungen in eine ArrayList speichere, werden die 4 ganzen Zahlen, die durch die erste 'mögliche Bewegung' erzeugt werden, durch die nächsten 4 möglichen Ganzzahlen überschrieben .
So speichere ich nicht alle möglichen Züge zu einer Arraylist für die spätere Sortierung.
Ich habe versucht Speichern jeder Variable getrennt in int-Arrays zu später zusammengelegt werden, aber immer noch überschreibt. Versucht, ein Spielbrettobjekt zu erstellen, aber Fehler erhalten.
Die Ausgabe kann eine 1D- oder 2D-Arraylist sein.
if(Spikes[0]>=1 && Spikes[inte2]>=1 && Spikes[destination1]>=0 &&
Spikes[destination2]>=0){
c.addMoveToArray(inte1, inte2, destination1, destination2);}
public int addMoveToArray (int inte1, int inte2, int destination1, int
destination2) {
ArrayList<Integer> plist = new ArrayList<Integer>();
plist.add(inte1); plist.add(inte2); plist.add(destination1);
plist.add(destination2);
for (int i=0; i<plist.size();i++) {
System.out.println(plist);
}
Output in console
[5, 0, 8, 10]
[6, 0, 9, 11]
[7, 0, 10, 12]
[8, 0, 11, 13]
Haben Sie die Indizierung oder '.add()' verwendet, wenn Sie die erste verwendet haben, wird die vorherige überschrieben –
Fügen Sie weiteren Code und genauen Fehler/Ausnahme –
Sie erstellen eine neue ArrayList jedes Mal, wenn Sie addMoveToArray aufrufen Werfen Sie die Liste weg, nachdem Sie den Inhalt ausgedruckt haben – FredK