Hallo. Eigenen Liste zu erstellen gehört irgendwie zum standard alle Java Vorlesungen. Das einfügen von Objekten habe ich noch irgendwie verstanden aber jetzt soll man auch irgendwie selber Objekte löschen. Eigentlich aus der Theorie einfach: Will ich zum Beispiel den Letzten löschen gehe ich einfach so lange weiter bis der letzte Objektzeiger (schwanz oder auch tail genannt) auf null zeigt. Dann ist das eigentlich der letzte Objekt und den nulle ich dann einfach. Will nicht viel Code kopieren aber ich glaube das problem liegt nicht in der Theorie sondern im Code, das ich da was falsch mache:
Naja wie ich das mache, der will nicht. Irgendwas mache ich falsch. Ich kann nicht mal den ersten Objekt löschen. Nehmen wir an ich hätte nur zwei und möchte nur irgend ein loswerden (bzw. den ersten), dann sage ich einfach sofort am anfang ohne if und while: this.tail = null, dann müsste ich doch eigentlich nur einen haben oder? Naja irgendwie sind in der Ausgabe alle Objekte drinne. Glaube habe was am Javacode falsch verstanden.
Code:
public class List {
Object head;
List tail;
public List() {
tail = null;
}
public List(Object head, List tail) {
this.head = head;
this.tail = tail;
}
//viel code...
public void lastRemove() {
while(!(this.tail.tail == null)) {
this.tail = tail; //aktueller pointer zeigt auf dem nächsten
}
this.tail = null; //der vorletzte zeiger zeigt nicht mehr auf dem letzten sondern ins nichts (somit wird er der letzte head)
}
}
Naja wie ich das mache, der will nicht. Irgendwas mache ich falsch. Ich kann nicht mal den ersten Objekt löschen. Nehmen wir an ich hätte nur zwei und möchte nur irgend ein loswerden (bzw. den ersten), dann sage ich einfach sofort am anfang ohne if und while: this.tail = null, dann müsste ich doch eigentlich nur einen haben oder? Naja irgendwie sind in der Ausgabe alle Objekte drinne. Glaube habe was am Javacode falsch verstanden.