我正在尝试在JUnit中运行一个getPrevious()方法的测试。
public void getPrev(){
for (int i = 0; i < 1000; i++) {
list.add(i);
}
list.reset();
for (int i = 999; i >= 0; i--) {
int info = list.getPrevious();
assertEquals(i, info);
}
}
除了这种方法,其它方法都好像没问题。在进行一些打印测试后,我发现重置方法不起作用。
...reset(){
if (list != null)
location = list.getPrev();//returns the last node's previous node -- head node.
}
它应该将位置节点作为头节点,但是它没有返回正确的信息。它返回了null而不是头节点。
因此,我的逻辑让我相信add方法并没有按照预期工作。这也是我的问题。我一直在尝试多种方法来查看错误出现在哪里,但似乎没有任何作用。我想看看是否有人能够帮助找到代码中的逻辑错误。
public void add(Object elem) {
LLNode<T> newNode = new LLNode(elem);
if(list == null){
tail = list = newNode;
}
list.setPrev(newNode);
newNode.setNext(list);
newNode.setPrev(tail);
tail.setNext(newNode);
list = newNode;
size++;
}