Lista doblemente enlazada en Java
En una lista vinculada, cada elemento actúa como un objeto separado con una parte de datos y una parte de dirección. No utiliza una ubicación de memoria contagiosa para almacenar datos. Una lista doblemente enlazada almacena la dirección del nodo anterior y del siguiente. Tener dos nodos de dirección permite que una lista doblemente enlazada atraviese en ambas direcciones.
Este tutorial analizará las listas vinculadas en Java.
En Java, la clase Linked List es parte del marco de las Colecciones de Java que proporciona la funcionalidad de la estructura de datos Linked List, que actúa como una Doblemente Linked List.
Cada elemento actúa aquí como un nodo que consta de 3 valores, a saber, Prev
, Next
y Data
, en una sola posición. Prev
almacena la dirección del elemento anterior, Next
almacena la dirección del elemento siguiente y Data
almacena los datos reales del nodo.
Por ejemplo,
import java.util.*;
public class ABC {
public static void main(String[] args) {
LinkedList<String> fruits = new LinkedList<>();
fruits.add("apple");
fruits.add("orange");
fruits.add("mango");
System.out.println("LinkedList: " + fruits);
}
}
Producción :
LinkedList: [apple, orange, mango]
En el ejemplo anterior, hemos creado con éxito una lista vinculada a través del marco de colecciones de Java.
Aquí, el primer nodo tiene datos como apple
que también tiene un valor nulo como su anterior y la dirección de naranja como su siguiente. De manera similar, el segundo elemento con datos ’naranja’ tiene la dirección de apple como anterior y la dirección de mango como siguiente.
Siempre que se añade un nuevo elemento, las direcciones Prev
y Next
se actualizan automáticamente de forma interna.
El método get()
se utiliza para acceder a los elementos de Linked List, que itera desde el principio hasta el elemento. También tenemos el método listIterator()
para acceder a los componentes. Las funciones next()
y previous()
pueden ayudar a recorrer la lista en ambas direcciones.
Además, podemos usar el método set()
para cambiar los elementos de la Lista Vinculada. La función remove()
puede eliminar un elemento.
Usamos algunas de estas funciones en el siguiente ejemplo.
import java.util.*;
public class ABC {
public static void main(String[] args) {
LinkedList<String> fruits = new LinkedList<>();
fruits.add("apple");
fruits.add("orange");
fruits.add("mango");
String str = fruits.listIterator(1).previous();
System.out.println("i like " + str);
}
}
Producción :
i like apple
En el ejemplo anterior, accedimos al valor anterior al elemento en el índice 1 usando la función previous()
.
También podemos crear nuestra clase con datos y variables de puntero para simular una lista Doblemente Vinculada en Java.