4

ヘッドとテールの2つのインスタンス変数があります。コードには次の行があります。

head = tail = new Node<E>();

これは、クラスNodeのヘッドとテールの2つのインスタンスがあることを意味しますか?私はここでかなり混乱しています。

4

8 に答える 8

13

それは単に意味します:

tail = new Node<E>();
head = tail;

したがって、同じインスタンスを指す2つの参照(headおよび)があります。tailNode<E>

于 2012-11-29T18:58:42.813 に答える
4

これは、ONE Object への 2 つの参照があることを意味しNodeます。

この行tail = new Node<E>();は実際には、割り当てられた値と等しい値 (この場合はオブジェクト参照) を返します。

于 2012-11-29T18:58:51.423 に答える
3

いいえ、 createdのインスタンスは1 つしかありませんが、両方ともそれを参照しているため、同じオブジェクトを指す 2 つの参照変数があります。Node<E>headtail

于 2012-11-29T18:58:57.647 に答える
2

のインスタンスは1つだけですNodeheadと参照の両方tailが同じインスタンスを指しています。

于 2012-11-29T18:58:40.393 に答える
2

いいえ、そうではありません。

このコードで何が起こっているかを順番に示します。

  1. 'new' は Node クラスのインスタンス (別名オブジェクト) を作成するために使用されます
  2. このインスタンスへの参照は末尾参照に格納されます
  3. このインスタンスへの参照はヘッド参照に格納されます。
于 2012-11-29T18:59:15.390 に答える
1

2つの参照はhead、両方ともの同じ単一インスタンスにtail割り当てられます。Node

于 2012-11-29T18:58:45.813 に答える
1

オブジェクトは 1 つだけ作成され、head と tail の両方が同じオブジェクトを参照します。

于 2012-11-29T18:59:38.717 に答える