ノードのすべてのフィールドがnullであるかどうかをチェックすることができます:
Node firstNode = list.firstNode;
if(firstNode.data == null &&
firstNode.nextPointer == null &&
firstNode.previousPointer == null) {
//Do stuff
}
やコードの繰り返しを防ぐために、あなたはインスタンスメソッドのisNull()テストを行うために作成したり、NULLオブジェクトを作成することができますどちらかとNodeクラスのequalsメソッドをオーバーライドして、説明したようにノードがnullノードと等しいかどうかを確認します。その後
class Node<E> {
//The null node, assuming your constructor takes all three values.
public static final Node NULL = new Node(null, null, null);
//Fields here with constructors etc.
@Override
public void equals(Object obj) {
if(!obj instanceof Node) return false;
Node<?> node = (Node<?>)obj;
if(node.data.equals(this.data) &&
node.nextPointer == this.nextPointer &&
node.previousPointer == this.previousPointer) {
return true;
} else {
return false;
}
}
あなたは、ノードが、あなたが行うことができますnullであるかどうかを確認したい:
if(list.firstNode.equals(Node.NULL)) {
//Do stuff
}
詳細に「動かない」説明してください。 –
そのループの中には入っていません。それが私の言いたいことです。 – AKIWEB
おそらく 'list.firstNode'は' null'と等しくないでしょうか? –