显示ArrayList对象



我有一个ArrayList充满了链接列表,我需要能够在该数组列表中显示特定的链接列表。

        for(int i=0;i<my_lists.size();i++){
        System.out.println(my_lists.get(my_lists.size()));
    }

显示在输出中:

kruskal.LinkedList@a4aad7f
kruskal.LinkedList@2cc47220
kruskal.LinkedList@1520a9d6
kruskal.LinkedList@136e2b70
kruskal.LinkedList@25e5d007
kruskal.LinkedList@12bc8f01
kruskal.LinkedList@19509443

作为输出。为什么它不显示我的链表?

这是我的LinkedList类:
package kruskal;
public class LinkedList {
Node head;
public LinkedList(){
    this.head = null;
}
public void add (Object newData){
    Node cache = head;
    Node current = null;
    if (cache == null)
        current = new Node(newData, null);
        else {

    while ((current = cache.next) != null)
        cache = cache.next;
    cache.next = new Node(newData,null);
        }
}
public Object getFront(){
    return this.head.data;
}
}

由于LinkedList是一个对象,当您使用System.out.println打印该对象时,将调用toString()方法。因为你的类没有toString()方法,它的父类toString()被调用,在这种情况下很可能是Object。

所以你需要在你的LinkedList类中覆盖toString()方法,并以你想要的方式打印对象。

在你的代码中,这行my_lists.get(my_lists.size())必须给你错误,因为你正在读取索引my_lists.size()的对象,该对象不存在,并给出Index Out of bounds exception错误。
你需要在for循环中读取LinkedList的in循环。

for(int i=0;i<my_lists.size();i++){
    LinkedList link = my_lists.get(i)
    //Read value from LinkedList here  
    for(int j=0;j<link.size();j++){    
        //I dont know what type of object stoer in your linked list so i get it in Object
        Object obj = link.get(j);  //read your value here as per data type stored. 
        System.out.println(obj);
    }
}

问题是您没有在LinkedList类中覆盖toString()方法。

重写toString(),并让它遍历列表,返回每个元素的toString()值的CSV(如java.util.LinkedList的实现)

相关内容

  • 没有找到相关文章

最新更新