以下代码是一个Queue,它应该添加和删除整数值,但该函数不能按预期工作。只添加前两个值,remove函数显示空指针异常。 此外,迭代器类不会迭代整数值。它会导致无限循环。原因是什么?
谢谢。
答案 0 :(得分:1)
add
方法中的这两行似乎正在创建一个循环:
front.next = previousNode;
previousNode.next = front;
这里的循环导致迭代中的无限循环。
我认为您需要的只是将上一个节点的下一个节点设置为新节点。
previousNode.next = front;
此remove
方法的这一部分似乎也不正确:
E n = back.element;
back = back.next;
if (back == null)
front = null;
else
back.next = null;
这里的问题是你每次都将back.next
设置为空,这会让你失去队列的其余部分。
为了解决这个问题,你只需要删除其他部分,以便保留旧的。
E n = back.element;
back = back.next;
if (back == null)
front = null;