当我调用toString()时,它调用内置的toString()而不是我的自定义版本。
这是我的代码(删除了不必要的代码,使其更像是一个最小的,完整的,可验证的问题:
public class DoublyLinkedList<Item extends Comparable> {
private class Node{
private Item item;
private Node next;
private Node prev;
//methods to get/set next, prev, item
}
private Node head;
private int numberOfEelements;
//methods to add/remove items (sorted)
public String toString(){
Node current = head;
StringBuilder sb = new StringBuilder();
while(current != null){
sb.append(current).append("Item: " + " ");
current = current.getNext();
}
return sb.toString();
}
public static void main(String[] args) {
DoublyLinkedList<Integer> list = new DoublyLinkedList<Integer>();
list.sortedAdd(1);
list.sortedAdd(5);
list.sortedAdd(7);
list.sortedAdd(9);
list.sortedAdd(3);
list.sortedAdd(2);
list.sortedRemove(3);
System.out.println(list.toString());
}
}
任何帮助都会非常感激。感谢。
答案 0 :(得分:2)
替换
list.toString();
与
System.out.println(list.toString());
说明:toString
方法生成对象的String表示形式,但它不生成任何输出。所以你必须将结果发送到例如System.out
。