LinkedList resulta una implementación muy eficiente y aquí radica uno de los motivos por los que es interesante y por los que esta clase se usa en la programación en java.
LinkedList resulta una implementación muy eficiente y aquí radica uno de los motivos por los que es interesante y por los que esta clase se usa en la programación en java.
LinkedList resulta una implementación muy eficiente y aquí radica uno de los motivos por los que es interesante y por los que esta clase se usa en la programación en java.
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]