2 回答

TA貢獻(xiàn)1798條經(jīng)驗 獲得超7個贊
您的類LinkedList(建議您重命名它,因為它可能與混淆java.util.LinkedList)需要重寫method Object::toString,該方法在打印到控制臺中被調(diào)用。
我在java.util.LinkedList類中沒有找到toString()。
有點偵探性的工作-您必須單擊LinkedList<E>擴(kuò)展的源代碼,然后再擴(kuò)展AbstractSequentialList<E>,AbstractList<E>最后擴(kuò)展AbstractCollection<E>(源代碼)類,在該類中,重寫的Object::toString方法負(fù)責(zé)所有元素的類似于字符串的表示形式。在那里您可以得到啟發(fā)。
如何制作代碼以打印LinkedList的內(nèi)容?
這條路:
@Override
public String toString() {
StringBuilder sb = new StringBuilder("[");
if (first != null) {
Node temp = first;
String sep = "";
while (temp != null) {
sb.append(sep).append(temp.value);
temp = temp.next;
sep = ", ";
}
}
return sb.append(']').toString();
}

TA貢獻(xiàn)2003條經(jīng)驗 獲得超2個贊
例如,您必須創(chuàng)建自己的toString方法
class LinkedList {
//...
@Override
public String toString() {
StringBuilder text = new StringBuilder("[");
String del = "";
if (first != null) {
do {
text.append(del).append(first.value);
first = first.next;
del = ", ";
} while (first != null);
}
text.append(']');
return text.toString();
}
}
如果再次運行代碼,則輸出
[1, 2]
添加回答
舉報