サイズ: 58
コメント:
|
サイズ: 970
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 3: | 行 3: |
オブジェクトを除く場合でも、先頭を処理するほうが楽です。 ---- === 例1 === 変数aがいくつかつながったオブジェクトを参照しており、 その先頭の1つのオブジェクトを除く場合です。 . {{attachment:chain38.png}} 赤矢印でしめしたようにつなぎ変えることで、 並びから1つのオブジェクトを除くことができます。 {{{ a = a.next; }}} 処理の後では、 変数aからたどっていくと、赤いXで示したオブジェクトは参照できません。 赤いXで示したオブジェクトは消えてなくなったのではありません。 どこからも参照されていないオブジェクトは、 ごみ集め(ガーベッジコレクタ)が行われた時点で無くなります。 ---- === 例2 === . {{attachment:chain39.png}} . {{attachment:chain40.png}} |
オブジェクトを除くメソッド
オブジェクトを除く場合でも、先頭を処理するほうが楽です。
例1
変数aがいくつかつながったオブジェクトを参照しており、 その先頭の1つのオブジェクトを除く場合です。
赤矢印でしめしたようにつなぎ変えることで、 並びから1つのオブジェクトを除くことができます。
a = a.next;
処理の後では、 変数aからたどっていくと、赤いXで示したオブジェクトは参照できません。
赤いXで示したオブジェクトは消えてなくなったのではありません。
どこからも参照されていないオブジェクトは、 ごみ集め(ガーベッジコレクタ)が行われた時点で無くなります。