【问题标题】:Printing out a Linked list [duplicate]打印出链接列表[重复]
【发布时间】:2023-03-28 20:24:01
【问题描述】:

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

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

【问题讨论】:

标签: java string printing linked-list


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    嗯,默认情况下,java 中的每个类都从 Object 类中获取 toString 方法。 来自Object classtoString 方法将打印class name,后跟@hash code

    您可以将override toString method 换成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);
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2017-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 2023-03-21
        相关资源
        最近更新 更多