2014-09-20 62 views
-1

我拼命试图让我的链表打印,但无济于事。搜索网络,我发现需要一个tostring方法,但我仍然无法使它工作。如何在Java中打印链表?

下面是我用我的参考依据链表代码:

http://pastebin.com/M4PvKcZ8

http://pastebin.com/nCbwa06d

如何打印链接列表项?

注意:链表不是空的,我只是发布了需要帮助我的部分代码。

+0

为什么不使用'LinkedList'? – Hannes 2014-09-20 12:53:54

+0

向我们展示您试图打印的内容,在您的尝试中哪些内容无效? – Henry 2014-09-20 12:54:06

+0

这是功课吗? – 2014-09-20 12:54:47

回答

1

您需要对两个类别重写toString():列表和项目。然后,在您的列表的toString()方法中,您正在迭代您的元素,每个孩子都调用toString()

例如用于列表:

@Override 
public String toString(){ 
    StringBuilder builder = new StringBuilder(); 
    builder.append("ReferenceBasedList["); 
    ListNode currentElement = head; 

    while (currentElement != null){ 
     builder.append(currentElement.toString()); 

     currentElement = currentElement.getNext(); 

     //seperator if required: 
     if (currentElement != null){ 
     builder.append(", "); 
     } 
    } 

    builder.append("]"); 
    return builder.toString(); 
} 

此外,它是常见的做法是添加的哈希码在每个元件的端部,以很容易地发现,如果在打印时他们2名的引用都指向同一个对象。

+0

没有递归的不错的一个。你可以使用一个'StringBuilder'面团。 – Hannes 2014-09-20 12:58:18

+0

是的,Stringbuild将是更好的选择。 – dognose 2014-09-20 12:58:45