welcome: please sign in
location: "オブジェクトをつなぐメソッド"の差分
6と7のリビジョン間の差分
2010-11-22 07:17:28時点のリビジョン6
サイズ: 1676
編集者: masahiko
コメント:
2010-11-22 07:20:09時点のリビジョン7
サイズ: 1676
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 44: 行 44:
 a.add1(new Chain());  a.add0(new Chain());
行 50: 行 50:
void add1(Chain c) void add0(Chain c)

オブジェクトをつなぐメソッド

オブジェクトを沢山つなげることができました。

うまい方法を使うと、新しいオブジェクトを先頭に追加する方が楽にできます。


例1

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

  • chain30.png

赤矢印でしめしたようにつなぎ変えることで、1つのオブジェクトを追加できます。

  • chain31.png

  • chain32.png

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

  • temp.next = a;
    a = temp;


例2

赤矢印でしめした位置に追加する場合。

  • chain33.png

追加したい位置の直前にあるオブジェクトを参照できなければなりません。

変数pがその位置を指しているとします。

  • chain34.png

pが指しているオブジェクトの直後に、 tempが示している1つのオブジェクトを追加する処理はこのように書けます。

  • temp.next = p.next;
    p.next = temp;


例3

例2の処理はchainが沢山つながった途中をpが指している場合でも正しく動作します。

  • chain35.png


オブジェクトをつなぐメソッド

  •    1 public static void main(String[] args)
       2 {
       3         Chain a;
       4         ...
       5         a.add0(new Chain());
       6         ...
       7 }
    
       1 void add0(Chain c)
       2 {
       3 }
    
  • chain36.png

  • chain37.png

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