Seite 1 von 1

Verlinkung zweier Variablen

Verfasst: 14. Sep 2016 16:13
von Antl
Guten Tag,
ich glaube ich habe etwas grundlegendes im Zusammenhang mit Java falsch verstanden.
Wenn ich durch eine Liste iterieren indem ich einen Zeiger erstelle, mache ich das nach dem Schema:
ListElement <T> Zeiger = header; //wobei header das erste Listenelement meiner Liste darstellt.

Wenn ich nun im Verlauf meiner Methode Zeiger=Zeiger.next anwende, ändere ich doch auch damit meinen header. Wenn meine Methode dann fertig ist, hab ich das header Element doch komplett verändert oder? Die Frage ist weniger ob das so ist, denn das weiß ich bereits. Die Frage ist viel eher ob ich das in einer Klausur ignorieren darf oder einen anderen Weg finden muss, ohne die ursprüngliche Liste zu ändern.
MfG

Re: Verlinkung zweier Variablen

Verfasst: 14. Sep 2016 16:59
von kci
schau dir nochmal die Folien dazu an insbesondere lists-referenzsemantik und lists-linked lists, sollte den Unterschied zwischen einer Variable und einem Objekt klar machen und dass 2 Variablen auf das selbe Objekt verweisen können

Re: Verlinkung zweier Variablen

Verfasst: 14. Sep 2016 19:22
von yokop

Code: Alles auswählen

for (ListItem<T> p = head; p != null; p = p.next)
Angenommen das Objekt head ist der Kopf einer linearen Liste, dann ist p (zu Beginn) lediglich ein Verweis, ein Zeiger, auf dieses erste Element, jedoch nicht das Objekt an sich. Im Verlauf der Schleife wird durch p = p.next der Verweis geändert, p zeigt nun auf den jeweiligen Nachfolger des Elementes. Dabei wird das Objekt selbst wird jedoch nicht geändert.