welcome: please sign in
location: "オブジェクトを除くメソッド"の差分
5と6のリビジョン間の差分
2010-11-22 08:15:25時点のリビジョン5
サイズ: 970
編集者: masahiko
コメント:
2010-11-22 08:16:15時点のリビジョン6
サイズ: 1011
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 11: 行 11:
 . {{attachment:chain39.png}}
処理はこのように書けます。
行 23: 行 25:
 . {{attachment:chain39.png}}

オブジェクトを除くメソッド

オブジェクトを除く場合でも、先頭を処理するほうが楽です。


例1

変数aがいくつかつながったオブジェクトを参照しており、 その先頭の1つのオブジェクトを除く場合です。

  • chain38.png

赤矢印でしめしたようにつなぎ変えることで、 並びから1つのオブジェクトを除くことができます。

  • chain39.png

処理はこのように書けます。

  • a = a.next;

処理の後では、 変数aからたどっていくと、赤いXで示したオブジェクトは参照できません。

赤いXで示したオブジェクトは消えてなくなったのではありません。

どこからも参照されていないオブジェクトは、 ごみ集め(ガーベッジコレクタ)が行われた時点で無くなります。


例2

  • chain40.png

オブジェクトを除くメソッド (最終更新日時 2010-11-24 00:58:28 更新者 masahiko)