C++のリンクリストには基本的に問題はありませんでしたが、何らかの理由でこれが私のところに届いています。提供されたパッケージ内の他のクラスを使用して単一のノードを印刷しましたが、私が続けると壁にぶつかります。Javaのリンクリストのキューをデバッグする方法は?
以下のコードは、私の周りの微妙な変化のためにシャンブルになっています。私はここからどこに行くのか分かりません。現時点では、NULLポインタ例外が発生しています。
ただの情報:poll()
は、現在のヘッドを取り除いて戻しているだけです。offer()
が背面に追加されています。現時点では例外はofferメソッドのoldLast.next = last
です。
私はこれを完全に解決するよう誰にも求めていません。進歩するためのヒントが必要なだけです。
public class FIFOQueue implements Queue {
//put your name as the value of the signature.
String signature = "name";
Node head = new Node(null);
Node pointer = head;
Node first;
Node last;
Node prev;
Node curr;
class Node {
Process process;
Node next;
Node(Process p) {
this.process = p;
this.next = null;
}
}
@Override
public void offer(Process p) {
if(head == null)
{
head = new Node(p);
first = head;
last = head;
}
else
{
Node oldLast = last;
Node newNode = new Node(p);
last = newNode;
oldLast.next = last;
}
}
@Override
public Process poll() {
if(isEmpty())
throw new NoSuchElementException();
Node oldPointer = first;
first = first.next;
head = first;
return oldPointer.process;
}
@Override
public boolean isEmpty() {
return head == null;
}
@Override
public String getSignature() {
return signature;
}
}
より具体的にする必要があります。 「15行目にArrayIndexOutOfBoundsExceptionがある」と言うと、「物事はうまくいかず、あなたが私を助けてくれることを願っています」と答えると答えが出る可能性が高くなります。 – Kayaman
真実、申し訳ありません。現在のところ、私は例外を "\t \t \t oldLast.next = last;"から取得しています。オファー機能で。 – Clannadqs
そこから 'NPE'を取得している場合、' oldLast'はnullです。 'NullPointerException'を得るたびにhttp://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-itを参照してください。 – Kayaman