对于家庭作业,我正在编写一个LinkedList类,该类取代了LinkedList方法。我正在研究“设置”方法。
这是我到目前为止对set()方法的了解。它以int index
和X item
作为参数。节点的头位于名为first
的变量中。 (整个类是通用的。)
Node<X> p = new Node<X>();
if(index < 0 || index > size()-1){
throw new Bonfire();
}
int count = 0;
while(count != index){
p = p.next;
count++;
}
if(count == index){
p.item = item;
}
节点类:
public class Node<T>
{
T item;
Node<T> next;
}
当我针对已有的一些测试代码运行代码时,它无法通过测试。
测试代码:
LList<String> b = new LList<String>();
b.add("Hello");
b.add("Bye");
b.set(0, "Bonjour");
assertEquals("Bonjour", b.get(0));
测试失败,原因:org.junit.ComparisonFailure: expected:<[Bonjour]> but was:<[Hello]>
(add(),size()和get()方法正常工作。)
所以我的问题是,如何获取此信息以正确设置元素?从这段代码,以及为什么测试失败的原因来看,它似乎根本没有设置任何内容。如果您需要我提供任何其他信息,请随时询问我。感谢帮助。谢谢!
答案 0 :(得分:1)
我要做的就是更改Node<X> p
使其变为Node<X> p = first;
。