2013-03-07 83 views
4

当我尝试打印我的链接对象的列表它给了我这样的:打印出一个链表

[email protected]

有没有办法简单地覆盖此方法来打印成字符串?

package linkedlist; 

import java.util.Scanner; 

public class LinkedListTest { 

    public static void main(String[] args) { 
     Scanner keyboard = new Scanner(System.in); 
     String item; 

     MyLinkedList list = new MyLinkedList(); 
     System.out.println("Number of items in the list: " + list.size()); 

     Object item1 = "one"; 
     Object item2 = "two"; 
     Object item3 = "Three"; 

     list.add(item1); 
     list.add(item2); 
     list.add(item3); 

     System.out.println("Number of items in the list: " + list.size()); 

     System.out.println(list); 
} 
+0

你能告诉我们一些代码? – Ron 2013-03-07 23:59:04

+0

您到目前为止尝试过什么,以及您使用的是哪种编程语言。但是,相关的问题是http://stackoverflow.com/questions/4372976/c-print-linked-list-of-strings – user1929959 2013-03-07 23:59:42

回答

1

可以派生链表类并重写toString方法...

10

如果您的列表实现,你可以使用java.util.List接口,此行到列表转换为数组并打印出阵列。

System.out.println(Arrays.toString(list.toArray())); 
5

那么,在默认情况下在java中每一个类从Object类有toString方法。 从Object class开始的toString方法将打印class name,然后是@hash code

你可以override toString methodLinkedList。 例如:

class MyLinkedList extends LinkedList 
{ 

    /* (non-Javadoc) 
    * @see java.lang.Object#toString() 
    */ 
    @Override 
    public String toString() { 
     return "MyLinkedList [size=" + size + ", first=" + first + ", last=" 
       + last + ", modCount=" + modCount + "]"; 
    } 

} 

然后你可以打印:

MyLinkedList list = new MyLinkedList(); 
System.out.println(list);