我從頭開始實現我自己的java.util.linkedlist,所以我沒有使用任何java.util.linkedlist功能。這就是說,我目前正在嘗試創建我自己的toString方法。這是我的節點類我的鏈表的toString()方法只打印第一個元素
private static class Node<T>{
private T data;
private Node<T> next;
public Node(T d){
next= null;
data = d;
}
public Node(T d, Node<T> n){
data = d;
next = n;
}
public T getData(){
return data;
}
public void setData(T d){
data = d;
}
public Node<T> getNext(){
return next;
}
public void setNext(Node<T> n){
next = n;
}
}
,這是我listclass
private Node<T> start;
private int size;
public ListNoOrder() {
start = null;
size = 0;
}
public void add(T newElt) {
Node<T> temp = new Node<T>(newElt);
Node<T> current = start;
try{ if (newElt==(null));}
catch (Exception illegalArgumentException){
throw new IllegalArgumentException();}
if (start == null){
start = new Node<T>(newElt, null);
}
if(current != null){
while (current.next != null){
current.setNext(temp);
}
}
size++;
}
public int length() {
return size;}
,我的toString方法至今
public String toString() {
String toPrint = "";
Node <T> current = start;
while (current != null){
toPrint += current.getData();
if (current.next != null)
toPrint += " ,";
current = current.getNext();
}
return toPrint;
}
當我測試只打印的第一個元素的方法名單。
mockList = 7,8,15,62,38,3 whatItsPrinting = 7,
我已經掙扎小時。
添加您的列表的初始化代碼(添加元素並調用toString方法的位置)。另外**哪裏是toString方法定義**?它似乎可以訪問私人'next'節點字段? –
東西告訴我'start'實際上是你鏈中的最後一個節點 – AxelH
你是什麼意思,toString是在哪裏定義的? @ m.antkowicz – rarayo55