如何从链接列表中打印数据

时间:2016-03-02 05:34:42

标签: java linked-list

public void DisplayList(List temp) {
    List current= temp;     
    if (current==null) {            
      System.out.println("List is Empty");          
    }

    while (current!=null) {         
      System.out.println(current);
      current= current.getNode();
    }
}

2 个答案:

答案 0 :(得分:1)

在问题中给出的代码中,您当前的类型为List。列表为null和空是两个不同的东西。您当前的变量应该是Node类型(getNode()返回的类型),当您打印当前(假设它是一个节点)时,除非您已经覆盖了toString方法,它将为您提供一些随机值。所以也许做current.getValue()

通常单链表节点有两个重要的东西,nextNode和someValue。每个链表都存储头部或列表中的第一个节点。

这是我实现基本单链表的方式:

public class LinkedList
{
public class Node
{
    Node nextNode;
    String val;

    public Node( Node nextNode, String val )
    {
        this.nextNode = nextNode;
        this.val = val;
    }
}

Node head = null;

public void add( String val )
{
    Node current = head;

    if ( current == null ) {
        head = new Node( null, val );
    }
    else {
        while ( current.nextNode != null ) {
            current = current.nextNode;
        }
        // add new node end of list
        current.nextNode = new Node( null, val );
    }
}

public static void main( String[] args )
{
    LinkedList list = new LinkedList();
    list.add( "head" );
    list.add( "second" );// adds after head
    list.add( "third" );// adds after second

    Node current = list.head;

    // if node is not null print
    while ( current != null ) {
        System.out.println( current.val );
        current = current.nextNode;
        // if the end of the list is reached next node would be null
    }

  }
 }

希望这有帮助

答案 1 :(得分:-2)

您的代码无效,因为getNode不是Java 7或8列表中的方法。

尝试使用内置于LinkedList中的listIterator方法。 listIterator方法返回一个ListIterator,然后您可以使用它来遍历列表。

您的方法应该采用LinkedList,如下所示:

if (current==null){

    System.out.println("list does not exist");            
}
while (current!=null){
    ListIterator iterator = current.listIterator(0);
    while (iterator.hasNext()) {
        System.out.println(iterator.next());
    }

}

了解更多信息

https://docs.oracle.com/javase/7/docs/api/java/util/ListIterator.html https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html