Moinsen liebes WoP,
Ich habe immo auf der Arbeit nen Problem, ich habe nen Array, indem sind mehrere Objecte, nun möchte ich dieses Array bearbeiten, is natürlich kein großes Ding, habe auch schön ne Möglichkeit gefunden, die, auf den ersten Blick, genau das macht was ich will:
Code:
public List<Test> verschieben(List<Test> alteListe, List<EintragVerschieben> listVerschieben) {
List<Test> neueListe = alteListe;
Test zwischenSpeicher;
int i = 0;
while(i < listVerschieben.size()) {
zwischenspeicher = alteListe.get(listVerschieben.get(i).getEintragAlt());
neueListe.remove(listVerschieben.get(i).getEintragAlt());
neueListe.add(listVerschieben.get(i).getEintragNeu(), zwischenspeicher);
}
return neueListe;
}
Soweit sogut, wenn ich jez nen Array hab mit 6 Einträgen und nur einen (z.B. 5 auf Position 3) bringen will, geht das, dann macht er aus sowas:
Test 1
Test 2
Test 3
Test 4
Test 5
Test 6
Sowas:
Test 1
Test 2
Test 5
Test 3
Test 4
Test 6
Nur, wenn ich jetzt noch Eintrag 4 auf Position 2 bekommen will kommt sowas:
Test 1
Test 2
Test 3
Test 5
Test 4
Test 6
Woran das liegt weiß ich, habe es auch schon umgestellt, dass er die Daten aus dem alten Array List, aber dann gibt es 2 mal Test 4, aber kein Test 3, da dies entfernt wird, bin echt am verzweifeln, hoffe mir kann da jemand helfen.
MfG
Gossi
PS:
Das mit
Code:
neueListe.set(eintragNeu, alteListe.get(eintragAlt);
habe ich auch schon versucht.
EDIT:
Lösungsansatz:
Es gibt ja auch die Möglichkeit, die Methode für jede änderung separat aufzurufen, aber das muss doch schöner/schneller gehen, grade bei 100 Einträgen aufwärts mit bis zu 50 änderung daurt des viel zu lange, auch wenn nicht oft was geändert wird, sowas wäre doch unschön