Você está na página 1de 3

LinkedList

Una lista enlazada es una estructura de datos que consiste en un grupo de


nodos que en conjunto representan una secuencia. En virtud de la forma
ms simple, cada nodo se compone de datos y una referencia (en otras
palabras, un enlace) al siguiente nodo en la secuencia; variantes ms
complejas aadir enlaces adicionales. Esta estructura permite la insercin o
eliminacin de elementos de cualquier posicin en la secuencia eficiente.
Las listas enlazadas son algunas de las estructuras de datos simples y ms
comunes. Se pueden utilizar para implementar varios otros tipos de datos
abstractos comunes, incluyendo listas (el tipo de datos abstracto), pilas,
colas, arrays asociativos, y S-expresiones, aunque no es raro para
implementar las otras estructuras de datos directamente sin utilizar una
lista como la base de aplicacin. El principal beneficio de una lista enlazada
a travs de una variedad convencional es que los elementos de la lista
pueden ser fcilmente insertado o eliminado sin reasignacin o
reorganizacin de toda la estructura debido a que los elementos de datos no
tienen que ser almacenados de forma contigua en la memoria o en el disco,
mientras que una serie tiene que ser declarado en el cdigo fuente, antes
de compilar y ejecutar el programa. Las listas enlazadas permiten la
insercin y eliminacin de nodos en cualquier punto de la lista, y pueden
hacerlo con un nmero constante de las operaciones si el enlace anterior al
enlace que se aade o se quita se mantiene durante lista de recorrido. Por
otro lado, las listas enlazadas simples por s mismos no permiten el acceso
aleatorio a los datos, o cualquier forma de indexacin eficiente. Por lo tanto,
muchas de las operaciones bsicas - tales como obtener el ltimo nodo de
la lista (suponiendo que el ltimo nodo no se mantiene como referencia de
nodo separado en la estructura de la lista), o encontrar un nodo que
contiene un dato dado, o localizar el lugar donde una nuevo nodo debe
insertarse - puede requerir exploracin secuencial de la mayora o todos los
elementos de la lista. Las ventajas y desventajas del uso de listas enlazadas
se dan a continuacin
LinkedList resulta una implementacin muy eficiente y aqu radica uno de
los motivos por los que es interesante y por los que esta clase se usa en la
programacin en java. La clase Linkedlist no permite posicionarse de
manera absoluta (acceder directamente a un elemento de la lista) y por
tanto no es conveniente para bsquedas pero en cambio s permite una
rpida insercin al inicio/final de la lista y funciona mucho ms rpido que
Arraylist por ejemplo para la posicin 0 (imaginemos que en un ArrayList
deseamos insertar en la posicin 0 y tenemos muchos elementos, no solo
tendremos que realizar la operacin de insertar este nuevo elemento en la
posicin 0 sino que tendremos que desplazar el elemento que tenamos de
la posicin 0 a la 1, el que estaba anteriormente en la posicin 1 a la 2 y as
sucesivamente Si tenemos un gran nmero de elementos la operacin de
insercin es ms lenta que en la implementacin LinkedList, donde el
elemento simplemente se enlaza al principio, sin necesidad de realizar
desplazamientos en cadena de todos los dems elementos).

Ejemplo
import java.util.*;
public class LinkedListExample {
public static void main(String args[]) {

/* Linked List Declaration */


LinkedList<String> linkedlist = new LinkedList<String>();

/*add(String Element) is used for adding


* the elements to the linked list*/
linkedlist.add("Item1");
linkedlist.add("Item5");
linkedlist.add("Item3");
linkedlist.add("Item6");
linkedlist.add("Item2");

/*Display Linked List Content*/


System.out.println("Linked List Content: " +linkedlist);

/*Add First and Last Element*/


linkedlist.addFirst("First Item");
linkedlist.addLast("Last Item");
System.out.println("LinkedList Content after addition: " +linkedlist);

/*This is how to get and set Values*/


Object firstvar = linkedlist.get(0);
System.out.println("First element: " +firstvar);
linkedlist.set(0, "Changed first item");
Object firstvar2 = linkedlist.get(0);
System.out.println("First element after update by set method: "
+firstvar2);

/*Remove first and last element*/


linkedlist.removeFirst();
linkedlist.removeLast();
System.out.println("LinkedList after deletion of first and last element: "
+linkedlist);

/* Add to a Position and remove from a position*/


linkedlist.add(0, "Newly added item");
linkedlist.remove(2);
System.out.println("Final Content: " +linkedlist);
}
}
Output
Linked List Content: [Item1, Item5, Item3, Item6, Item2]
LinkedList Content after addition: [First Item, Item1, Item5, Item3, Item6,
Item2, Last Item]
First element: First Item
First element after update by set method: Changed first item
LinkedList after deletion of first and last element: [Item1, Item5, Item3,
Item6, Item2]
Final Content: [Newly added item, Item1, Item3, Item6, Item2]

Você também pode gostar