Saltar al contenido

Imprimir una lista enlazada usando toString

Este team de redactores ha pasado mucho tiempo buscando para dar resolución a tu interrogante, te regalamos la respuesta y deseamos servirte de mucha apoyo.

public static void main(String[] args) 

    LinkedList list = new LinkedList();
    list.insertFront(1);
    list.insertFront(2);
    list.insertFront(3);
    System.out.println(list.toString());


String toString() 
            String result = "";
            LinkedListNode current = head;
            while(current.getNext() != null)
                result += current.getData();
                if(current.getNext() != null)
                     result += ", ";
                
                current = current.getNext();
            
            return "List: " + result;

Como se ha señalado en algunas otras respuestas y comentarios, lo que falta aquí es una llamada a la clase JVM System para imprimir el string generado por su método toString().

LinkedList myLinkedList = new LinkedList();
System.out.println(myLinkedList.toString());

Esto hará el trabajo, pero no recomendaría hacerlo de esa manera. Si echamos un vistazo a los javadocs de la clase Object, encontramos esta descripción para toString():

Devuelve un string representación del objeto. En general, el método toString devuelve un string que “representa textualmente” este objeto. El resultado debe ser una representación concisa pero informativa. que es fácil de leer para una persona. Se recomienda que todas las subclases anulen este método.

El énfasis agregado allí es mío. Estás creando un string que contiene el estado completo de la lista enlazada, que probablemente no esté esperando alguien que use su clase. Recomendaría los siguientes cambios:

  1. Agregue un método toString() a su clase LinkedListNode.
  2. Actualice el método toString() en su clase LinkedList para que sea más conciso.
  3. Agregue un nuevo método llamado printList() a su clase LinkedList que hace lo que actualmente espera que haga toString().

En LinkedListNode:

public String toString()
   return "LinkedListNode with data: " + getData();

En Lista Vinculada:

public int size()
    int currentSize = 0;
    LinkedListNode current = head;
    while(current != null)
        currentSize = currentSize + 1;
        current = current.getNext();
    

    return currentSize;


public String toString()
    return "LinkedList with " + size() + "elements.";


public void printList()
    System.out.println("Contents of " + toString());

    LinkedListNode current = head;
    while(current != null)
        System.out.println(current.toString());
        current = current.getNext();
    


Te mostramos las comentarios y valoraciones de los usuarios

Acuérdate de que tienes autorización de valorar esta crónica si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *