2017-03-18 14 views
-1

私はこれを見た:これはどのように解釈されますか?obj1.getPrev()。setNext(obj2);

obj2.setPrev(obj1.getPrev()); 
obj2.setNext(obj1); 
**obj1.getPrev().setNext(obj2);** 
obj1.setPrev(obj2); 

OBJ1をし、型クラス1とgetPrev(のobj2がある)、setNext()、setPrev()、getNextを()は次のようになります。

public void setPrev(Class1 prev) { 
    this.previous = prev; 
} 

public void setNext(Class1 next) { 
    this.next = next; 
} 

public Node getPrev() { 
    return previous; 
} 

public Node getNext() { 
    return next; 
} 

それを実装しますJavaでダブルリンクされたリストを使用するスター型アルゴリズム。

obj1.getPrev().setNext(obj2);はどのように機能しますか?

obj1の前のポインタをobj2の次のポインタに設定していますか?私には意味がないからです:)。

私が検討しているコードは正常に動作しています。この行を変更しようとすると、それが壊れます。

答えて

0

このコードは、オブジェクトobj2をobj1の前に「新規」または「再配置」しています。

このコードが実行されると、obj1の前の前にobj2が続きます。

+0

はいコードの内容を理解しています。私はライン** obj1.getPrev()。setNext(obj2); **がどのように実行されているのだろうかと思います。 obj1.getPrev()は、class1の変数** previous **を返し、setNext(obj2)は、class2の変数** next **を設定するためです。しかし、どのように2つの方法が接続されています。 – r0ry

+0

さらにコードを表示する必要があります。あなたが投稿したものから、私は両方のオブジェクトが同じタイプでなければならないという結論に達しました。通常は、異なるクラスのオブジェクトを同じリンクリストに入れることはありません。 – GhostCat

+0

そう思った。私の答えが受け入れられるほどに役立つと思うかどうか検討してください。あなたがあなたの質問を見つけたならば、それは忘れてはいけません。削除する可能性があります。 – GhostCat

関連する問題