Noticias

* Completa este formulario para conocer los temas de tu interes, te tomará unos segundos.
* Nuevos temas en CAKEPHP
* Ahora puedes bajar los proyectos finalizados!
* Sigue a la página para seguir creciendo!!

sábado, 22 de septiembre de 2012

Java: List/LinkedList

No hay comentarios :
Introducción

Java tiene listas que están formadas por un grupo de nodos, estos nodos contienen datos más una referencia al siguiente elemento de la lista (null cuando es el último elemento de la lista), cuando solo tienen la referencia del siguiente se dice que es una lista simplemente enlazada.
En esta entrada aprenderemos como crearla y entender su funcionamiento.

Desarrollo

En Java para importar esta librería se utilizan las siguientes líneas de código:

import java.util.LinkedList;
import java.util.List;

Una lista común y corriente sería inicializada de esta manera:

 List<TipoDato> lista = new LinkedList<TipoDato>();

Analicemos la inicialización anterior:
 - List: tipo de variable.
 - <TipoDato>: las listas van a contener algún tipo de dato ya sea enteros, cadenas, vectores o inclusive puede contener otras listas, esta parte se puede omitir, sin embargo se recomienda colocarla para luego no tener que hacer un parseo o algo por el estilo en el momento que queramos extraer los datos de la lista.
 - lista: nombre de la variable:
 - new LinkedList<TipoDato>();: Se crea el nuevo objeto tipo lista enlazada que va a contener un tipo determinado de varible.

Cuando se inicializa una lista de esta manera algunos métodos propios de la linked list se ven omitidos, por ejemplo agregar al inicio de la lista con solo invocar al método .addFirst(). Pero todo depende de que es lo que queramos hacer.

Para tener un mayor número de funciones en nuestra lista podríamos optar por hacer una linked list:

LinkedList<TipoDato> lista = new LinkedList<TipoDato>();

Importando solo la primera de las librerias anteriormente mencionadas, esto nos daría varios métodos más que nos pueden llegar a facilitar un poco la labor en la utilización de la lista.

Una lista como se mencionó antes está constituida por nodos, para entender mejor esta relación veremos el siguiente dibujo (imagen obtenida de google images):


Como se aprecia el nodo contiene dos campos uno para el dato y otro para la referencia del siguiente nodo, luego tenemos un conjunto de nodos enlazados, conformando así una lista simplemente enlazada.

Algo bueno de esta estructura de datos es ser dinámica, no se requiere decir cuando elementos va a contener (puede contener tantos como la memoria física de la máquina puede almacenar), se pueden implementar los métodos de eliminación, inserción (al inicio, final, o cualquier otro lugar dentro de la lista) y modificación que son los principales funciones que se realizan en las estructuras.

Estas lista funcionan muy parecido a la Clase Vector en la que hablamos en una entrada pasada pasado.

Esta vez no voy escribir los métodos y lo que hacen sino que les dejo directamente la dirección de la documentación de Java:


Les aconsejo que lean bien esas dos páginas para que así tengan un buen conocimiento de los propiedades de las listas y todo lo que se puede hacer con ellas, verán en un futuro que son muy útiles, más no siempre se acoplan a lo que queremos.

Conclusiones

Al ser estructuras dinámicas se facilita su manejo, sin embargo, se tiene que conocer más a fondo para conocer como trabajan.

Ayuda a mejorar el rendimiento de la aplicación debido a que solo ocupa el espacio que requieren los nodos y no reserva espacio como los arrays.

No hay comentarios :

Publicar un comentario