5

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

linkedlist.MyLinkedList@329f3d

有没有办法简单地覆盖它以打印为字符串?

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);
}
4

3 回答 3

11

如果您的列表实现了您可以使用的 java.util.list 接口,则此行将列表转换为数组并打印出该数组。

System.out.println(Arrays.toString(list.toArray()));
于 2013-03-08T00:01:58.917 回答
5

好吧,默认情况下,java 中的每个类都toStringObject类中获取方法。toString方法 from将Object class打印class name后跟@and hash code

您可以覆盖 toString方法LinkedList。例如:

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);
于 2013-03-08T00:04:41.083 回答
1

您可以派生链表类并覆盖 toString 方法...

于 2013-03-08T00:00:11.563 回答