Ich habe einen 2DArraylist als:Array Werte außerhalb der Schleife ändern - Java
private ArrayList<double[]> allNeuronsParams = new ArrayList<double[]>();
I-Werte versuche in einer Schleife, um es zuzuweisen:
for (int i = 0; i < getTotalNeuronNum(); i++) {
allNeuronsParams.add(defaultParamCase1); //this is fine
setNeuronParam(i, 0, (double)NMassociatedNum); //this is fine
setNeuronParam(i, 1,extractedNeuronTypes[i]); //this is the problem
}
Das Problem ist mit meiner letzten Aufgabe innerhalb der Schleife:
setNeuronParam(i, 1,extractedNeuronTypes[i]);
Diese Zeile ordnet Werte vom Array extractedNeuronTypes
dem zweiten Index jeder Zeile von allNeuronsParams
2-D ArrayList über die Funktion setNeuronParam(row, index, value)
zu.
Wenn ich Werte innerhalb der Schleife drucke, ist alles korrekt. Aber wenn ich nach der Schleife eine Druckanweisung einfüge, sind die Werte nicht mehr korrekt.
Die Werte, die gedruckt werden, sind alle 3. Dies ist der Standardwert für das Array extractedNeuronTypes
. Vor meiner for-Schleife rufe ich eine andere Funktion auf, öffne eine Datei und lese neue Werte in dieses Array - nicht für alle Indizes, aber für einen Teil von ihnen ändern sich die Werte. Zum Beispiel ändern sich Werte von Standardwerten von {3, 3, 3, 3} zu neuen Werten von {3, 2, 1, 3}.
Aus irgendeinem Grund wird nur auf die {3, 3, 3, 3} zugegriffen. Noch einmal drucke ich Werte innerhalb der Schleife und die richtigen Zahlen {3, 2, 1, 3} werden der 2-D ArrayListe zugewiesen.
Aber hier ist das, was ich nach der Schleife bekommen - fett Zahlen sind falsch, alles andere ist in Ordnung:
Meine Parameter sind: 1,0, 3.0, -1,0, -2,345, 1,0, 1.432.345,1, -13456,0, -1.4, 2,000003, 2,000003, 2,000003, 2,000003
My Parameter sind: 1.0, 3.0 , -1.0, -2,345, 1,0, 1432345,1, -13456,0, -1.4, 2,000003, 2,000003, 2,000003 , 2.000003
My Parameter sind: 1.0, 3.0 , -1.0, -2,345, 1,0, 1432345,1, -13456,0, -1.4, 2,000003, 2,000003, 2,000003, 2,000003
My Parameter sind: 1.0, 3.0 , -1.0, -2,345, 1,0, 1.432.345,1, -13.456,0, -1,4, 2,000003, 2,000003, 2,000003, 2,000003
Könnte jemand sehen, was ich hier falsch bin?
Vielen Dank.
Was ist das Hauptproblem? Das ist nicht die richtige Art, Fragen zu stellen ... –
Ist es normal, dass alle anderen Werte identisch sind? Sind Sie sicher, dass der Wert korrekt gelesen wurde (haben Sie es ausgedruckt, um sicher zu gehen)? – AntonH
Hallo, es tut mir leid - zum ersten Mal eine Frage zu stellen! Ich weise einer Arraylist Werte innerhalb einer Schleife zu, und ein Teil davon ändert sich außerhalb der Schleife. – fatima