Está en la página 1de 4

Sitio Web de Javier Garca Escobedo (javiergarciaescobedo.

es) - ArrayList

1 de 4

http://javiergarbedo.es/index.php/apuntes/31-arrays/130-arraylist

(/)

Est aqu: Inicio (/)


Apuntes Java (/programacion-en-java)
Arrays (/programacion-en-java/31-arrays)
ArrayList

Buscar

1. Declaracin de un objeto ArrayList


2. Creacin de un ArrayList
3. Aadir elementos al final de la lista
4. Insertar elementos en una determinada posicin
5. Suprimir elementos de la lista
6. Consulta de un determinado elemento de la lista
7. Modificar un elemento contenido en la lista
8. Buscar un elemento
9. Recorrer el contenido de la lista
10. Otros mtodos de inters

La clase ArrayList (http://download.oracle.com/javase/6/docs/api/java


/util/ArrayList.html) permite el almacenamiento de datos en memoria de forma similar a los
arrays convencionales, pero con la gran ventaja de que el nmero de elementos que puede almacenar es
dinmico. La cantidad de elementos que puede almacenar un array convencional est limitado por el
nmero que se indica en el momento de crearlo o inicializarlo. Los ArrayList, en cambio, pueden
almacenar un nmero variable de elementos sin estar limitados por un nmero prefijado.

La declaracin genrica de un ArrayList se puede hacer con un formato similar al siguiente:


ArrayList nombreDeLista;
Como se puede observar, de esta manera no se indica el tipo de datos que va a contener. Suele ser
recomendable especificar el tipo de datos que va a contener la lista para que as se empleen las
operaciones y mtodos adecuados para el tipo de datos manejado. Para especificar el tipo de datos que va a
contener la lista se debe indicar entre los caracteres '<' y '>' la clase de los objetos que se almacenarn:
ArrayList<nombreClase> nombreDeLista;
En caso de almacenar datos de un tipo bsico de Java como char, int, double, etc, se debe especificar el
nombre de la clase asociada: Character, Integer, Double, etc.
Ejemplos:

Para crear un ArrayList se puede seguir el siguiente formato:


nombreDeLista = new ArrayList();
Como suele ser habitual, se puede declarar la lista a la vez que se crea:
ArrayList<nombreClase> nombreDeLista = new ArrayList();
Por ejemplo:

La clase ArrayList forma parte del paquete java.util, por lo que hay que incluir en la parte inicial del
cdigo la importacin de ese paquete (import java.util.ArrayList;). Como siempre, desde NetBeans
se puede solucionar rpidamente desde el men contextual (clic derecho del ratn) del cdigo fuente,
escogiendo la opcin "Reparar importaciones".

19/03/2016 13:03

Sitio Web de Javier Garca Escobedo (javiergarciaescobedo.es) - ArrayList

2 de 4

http://javiergarbedo.es/index.php/apuntes/31-arrays/130-arraylist

El mtodo add (http://download.oracle.com/javase/6/docs/api/java


/util/ArrayList.html#add%28E%29) de la clase ArrayList posibilita aadir elementos. Los
elementos que se van aadiendo, se colocan despus del ltimo elemento que hubiera en el ArrayList.
En primer elemento que se aada se colocar en la posicin 0.
boolean add(Object elementoAInsertar);
Ejemplos:

Con los arrayList tambin es posible insertar un elemento en una determinada posicin desplazando el
elemento que se encontraba en esa posicin, y todos los siguientes, una posicin ms.
Para ello, se emplea tambin el mtodo add (http://download.oracle.com/javase/6/docs/api/java
/util/ArrayList.html#add%28int,%20E%29) indicando como primer parmetro el nmero de la posicin
donde se desea colocar el nuevo elemento:
void add(int posicin, Object elementoAInsertar);
Ejemplo:

Si se intenta insertar en una posicin que no existe, se produce una excepcin


(IndexOutOfBoundsException)

Si se quiere que un determinado elemento se elimine de la lista se puede emplear el mtodo remove al que
se le puede indicar por parmetro un valor int con la posicin a suprimir (http://download.oracle.com
/javase/6/docs/api/java/util/ArrayList.html#remove%28int%29), o bien, se puede especificar directamente
el elemento a eliminar (http://download.oracle.com/javase/6/docs/api/java
/util/ArrayList.html#remove%28java.lang.Object%29) si es encontrado en la lista.
Object remove(int posicin)
boolean remove(Object elementoASuprimir)
Se puede ver en el siguiente ejemplo los dos posibles usos:

19/03/2016 13:03

Sitio Web de Javier Garca Escobedo (javiergarciaescobedo.es) - ArrayList

3 de 4

http://javiergarbedo.es/index.php/apuntes/31-arrays/130-arraylist

El mtodo get (http://download.oracle.com/javase/6/docs/api/java


/util/ArrayList.html#get%28int%29) permite obtener el elemento almacenado en una determinada
posicin que es indicada con un parmetro de tipo int:
Object get(int posicin)
Con el elemento obtenido se podr realizar cualquiera de las operaciones posibles segn el tipo de dato del
elemento (asignar el elemento a una variable, incluirlo en una expresin, mostrarlo por pantalla, etc). Por
ejemplo:

Es posible modificar un elemento que previamente ha sido almacenando en la lista utilizando el mtodo set
(http://download.oracle.com/javase/6/docs/api/java/util/ArrayList.html#set%28int,%20E%29). Como
primer parmetro se indica, con un valor int, la posicin que ocupa el elemento a modificar, y en el
segundo parmetro se especifica el nuevo elemento que ocupar dicha posicin sustituyendo al elemento
anterior.
Object set(int posicin, Object nuevoElemento)
Por ejemplo, si en el ejemplo de la lista de pases se desea modificar el que ocupe la posicin 1 (segundo en la
lista) por "Alemania":

La clase ArrayList facilita mucho las bsquedas de elementos gracias al mtodo indexOf
(http://download.oracle.com/javase/6/docs/api/java
/util/ArrayList.html#indexOf%28java.lang.Object%29) que retorna, con un valor int, la
posicin que ocupa el elemento que se indique por parmetro.
int indexOf(Object elementoBuscado)
Si el elemento se encontrara en ms de una posicin, este mtodo retorna la posicin del primero que se
encuentre. El mtodo lastIndexOf (http://download.oracle.com/javase/6/docs/api/java
/util/ArrayList.html#lastIndexOf%28java.lang.Object%29) obtiene la posicin del ltimo
encontrado.
Ejemplo que comprueba si Francia est en la lista, y muestra su posicin.

En caso de que no se encuentre en la lista el elemento buscado, se obtiene el valor -1.

Es posible obtener cada uno de los elementos de la lista utilizando un bucle con tantas iteraciones como
elementos contenga, de forma similar a la empleada con los arrays convencionales. Para obtener el nmero
de elementos de forma automtica se puede emplear el mtodo size() (http://download.oracle.com
/javase/6/docs/api/java/util/ArrayList.html#size%28%29) que devuelve un valor int con el nmero de
elementos que contiene la lista.

Tambin se puede emplear el otro formato del bucle for en el que se va asignando cada elemento de la
lista a una variable declarada del mismo tipo que los elementos del ArrayList:

19/03/2016 13:03

Sitio Web de Javier Garca Escobedo (javiergarciaescobedo.es) - ArrayList

4 de 4

http://javiergarbedo.es/index.php/apuntes/31-arrays/130-arraylist

(Como implementacin de la clase Collection, los ArrayList pueden recorrerse utilizando Iterator
(http://www.java2s.com/Code/Java/Collections-Data-Structure
/UsetheIteratorreturnedfromArrayListtoloopthroughanarraylist.htm))

void clear() (http://download.oracle.com/javase/6/docs/api/java/util/ArrayList.html#clear


%28%29): Borra todo el contenido de la lista.
Object clone() (http://download.oracle.com/javase/6/docs/api/java/util/ArrayList.html#clone
%28%29): Retorna una copia de la lista.
boolean contains(Object elemento) (http://download.oracle.com/javase/6/docs/api/java
/util/ArrayList.html#contains%28java.lang.Object%29): Retorna true si se encuenta el elemento
indicado en la lista, y false en caso contrario.
boolean isEmpty() (http://download.oracle.com/javase/6/docs/api/java
/util/ArrayList.html#isEmpty%28%29): Retorna true si la lista est vaca.
Object[] toArray() (http://download.oracle.com/javase/6/docs/api/java
/util/ArrayList.html#toArray%28%29): Convierte la lista a un array.

Esta obra est bajo una

Javier Garca Escobedo


(https://plus.google.com
/104345622923909834485/)

licencia de Creative Commons

IES Ntra. Sra. de los Remedios

(http://creativecommons.org/licenses

Ubrique (Cdiz)

(http://creativecommons.org
/licenses/by-nc-sa/3.0/es/)

(https://twitter.com
/javiergarbedo)

(https://plus.google.com
/+JavierGarc
%C3%ADaEscobedo_es)

(https://www.linkedin.
/in/javiergarciaescobe

/by-nc-sa/3.0/es/) .

Regresar arriba

19/03/2016 13:03

También podría gustarte