簡體   English   中英

如何在不使用LinkedList方法的情況下在列表中設置元素

[英]How do I set an element in a list without using LinkedList methods

對於家庭作業,我正在編寫一個LinkedList類,該類取代了LinkedList方法。 我正在研究“設置”方法。

到目前為止,這是我對set()方法的了解。 它以int indexX 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()方法正常工作。)

所以我的問題是,如何獲得此設置以正確設置元素? 從這段代碼,以及為什么測試失敗的原因來看,它似乎根本沒有設置任何內容。 如果您需要我提供任何其他信息,請隨時詢問我。 感謝幫助。 謝謝!

我要做的就是更改Node<X> p使其成為Node<X> p = first;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM