Mamy coś takiego:
class Node {
Node next = null;
int data;
public Node(int d) {
data = d;
}
void appendToTail(int d) {
Node end = new Node(d);
Node n = this;
while (n.next != null) {
n = n.next;
}
n.next = end;
}
}
Cytując z książki:
What if multiple objects need a reference to the linked list, and then the head of the linked list changes? Some objects might still be pointing to the old head
Zastanawiam się dlaczego może dojść do takiej sytuacji skoro wszystkie parametry są przekazywane przez wartość. Więc jak utworzę sobie obiekt head
w/w klasy (dodam sobie np. 2
elementy przy pomocy appendToTail
), a następnie stworzę kilka innych obiektów (np. A
, B
i C
) do których przekażę wartość referencji do obiektu head
to dlaczego miałoby dojść sytuacji gdzie jeden z obiektów A
,B
,C
ma referencję do nieaktualnego początku listy skoro z definicji mają referencję do head
?