オブジェクト参照がどのように機能するかについて混乱しており、誰かが助けてくれるかどうか疑問に思っていました. 以下は、一般的なケースでリンクされたリストに基づいて Queue を deQueue することになっているサンプルコードです:
Object head = listHead.datum;
listHead = listHead.next;
return head;
私の理解では、プリミティブ変数がある場合、実際の値がそれに割り当てられて格納されますが、変数がオブジェクトの場合、オブジェクトへの参照がそこに格納されます。上記のコードでは、listHead.datum への参照が head に格納されていますが、listHead に格納されている参照が listHead.next に変更されています。head と呼ばれるオブジェクトを返すときが来たら、割り当てられた参照に従うと思います。つまり、listHead (現在は別の場所を参照しています) に移動してから、datum に移動します。
上記のコードはキューの先頭を返す必要がありますが、私のロジックに従って、キューの 2 番目を返します。どこが間違っていますか?