Ich glaube, das liegt daran, dass im Array nur die Speicheradresse des Objekts und nicht das Objekt selbst steht; leider kann ich jetzt auch nicht sagen, wie ich an Deiner Stelle anders programmieren würde.
haben eigenschaft1, eigenschaft2 usw. nach dem Verschieben nicht gewünschten Werte. Nach n-malgen Verschieben haben alle n-letzten Objelte die gleichen Eigenschfaten und ändern sich beim Ändern der Eigenschaften des letzten Objektes dynamisch mit.
Das wird wohl daran liegen, dass mein Array nicht die Objekte sondern nur die Referenzen auf die Objekte enthält und nur die werden beimverschieben kopiert.
Wie verschiebe ich aber denn nun die tatsächlichen Objekte im Array und nicht die Referenzen?
Ein array passt für den Rest des Problems sehr gut. Ich muss immer wieder auf das genau n-te, m-te uws. Element zugreifen. Ich glaube eine Liste ist da nicht so gut.
Gibt es also nur die Möglichkeit über:
Java:
for(int i =0; i <99; i++){
myArray[i].eigenschaft1 = myArray[i +1].eigenschaft1;
myArray[i].eigenschaft2 = myArray[i +1].eigenschaft2;...}
? Das funktioniert gut, ist aber nicht gerade "elegant", insbesondere wenn die Objektklasse mal andere oder mehr Eigenschaften bekommen soll.
In einer Liste könntest du einfach das 0te Element löschen und die anderen würden automatisch nachrutschen. Aber auch in einer Liste kannst du auf das x-te Element zugreifen. Dafür ist eine Liste auch da
Nach dem n-ten verschieben enthalten die n-letzten (rechtesten) Elemente des Arrays alle eine Referenz auf das gleiche Objekt. Ich habe jetzt eine Möglichkeit gefunden:
Nach n-malgen Verschieben haben alle n-letzten Objelte die gleichen Eigenschfaten und ändern sich beim Ändern der Eigenschaften des letzten Objektes dynamisch mit.
Nachdem Index 2,3 und 4 alle auf ein Objekt referenzieren änderst du damit alle auf einmal.
Ich frag mich gerade noch nach dem Sinn . Was willst du denn überhaupt machen? Du willst einfach das erste Objekt löschen? Dann nimm eine ArrayList oder erzeuge ein neues Array mit einem Feld weniger als das Ursprungsarray (ersteres ist allerdings besser)
Das ist genau dass, was ich wollte. Meine Frage war nun nur noch, ob ich das Objekt1 danach expliziet Löschen soll/kann/muss. Ich weiß, dass die garbage Collektion so etwas macht, aber nicht wie oft, sicher usw.
habs nicht getestet aber bin mir da ziemlich sicher. wenn du dynamik willst nimm eine liste!
Das ist genau dass, was ich wollte. Meine Frage war nun nur noch, ob ich das Objekt1 danach expliziet Löschen soll/kann/muss. Ich weiß, dass die garbage Collektion so etwas macht, aber nicht wie oft, sicher usw.
Ich will auch nichts hinzufügen. Die Anzahl der Abjekte / Arrayfelder soll immer gleich belieben. Deshalb scheint mit ein Array auch nicht unpassend.
Ich will nur den Inhalt ab und zu um einen Platz nach links schieben, so dass das linke (0-te) Element "rausfällt" und rechst ein neues / leeres entsteht.