La interface List define métodos para operar con colecciones ordenadas y que pueden tener
elementos repetidos. Por ello, dicha interface declara métodos adicionales que tienen que ver con el
orden y con el acceso a elementos o rangos de elementos. Además de los métodos de Collection. la
interface List declara los métodos siguientes:
Compiled
from List.java
public
interface java.útil.List extends java.útil.Collection
{
public
abstract void add(int, java.lang.Object);
public
abstract boolean addAll(intf java.útil.Collection);
public
abstract java.lang.Object get(int);
public
abstract int indexOf(java.lang.Object);
public
abstract int lastlndexOf(java.lang.Object);
public
abstract java.útil.Listlterator listlterator();
public
abstract java.útil.Listlterator listlterator(int);
public
abstract java.lang.Object remove(int);
public
abstract java.lang.Object set(int, java.lang.Object);
public
abstract java.útil.List subList(int, int);
}
Los nuevos métodos add() y addAHQ tienen un argumento adicional para insertar elementos
en una posición determinada, desplazando el elemento que estaba en esa posición y los siguientes.
Los métodos get() y set() penniten obtener y cambiar el elemento en una posición dada. Los
métodos indexOfO y lastlndexOfO penniten saber la posición de la primera o la última vez que un
elemento aparece en la lista; si el elemento no se encuentra se devuelve -1.
El método subList(int fromlndex, tolndex) devuelve una "vista" de la lista, desde el elemento
fromlndex inclusive hasta el tolndex exclusive. Un cambio en esta "vista"' se refleja en la lista
original, aunque no conviene hacer cambios simultáneamente en ambas. Lo mejor es eliminar la
"vista" cuando ya no se necesita.
Existen dos implementaciones de la interface List, que son las clases ArrayList y LinkedList.
La diferencia está en que la primera almacena los elementos de la colección en un array de Objects.
mientras que la segunda los almacena en una lista vinculada.
Los arrays proporcionan una fonna de
acceder a los elementos mucho más eficiente que las listas vinculadas. Sin embargo tienen
dificultades para crecer (hay que reservar memoria nueva, copiar los elementos del array antiguo y
liberar la memoria) y para insertar y/o bonar elementos (hay que desplazar en un sentido u en otro
los elementos que están detrás del elemento borrado o insertado). Las listas vinculadas sólo
penniten acceso secuencial. pero tienen una gran flexibilidad para crecer, para bonar y para insertar
elementos. El optar por una implementación u otra depende del caso concreto de que se trate.
No hay comentarios:
Publicar un comentario