Introducción a la jerarquía de colecciones en JAVA: Clase ArrayList y Clase Vector.

Clase ArrayList

La clase ArrayList en Java, es una clase que permite almacenar datos en memoria de forma similar a los Arrays, con la ventaja de que el numero de elementos que almacena, lo hace de forma dinámica, es decir, que no es necesario declarar su tamaño como pasa con los Arrays. ArrayList nos permiten añadir, eliminar y modificar elementos (que pueden ser objetos o elementos atómicos) de forma trasparente para el programador.

Los principales métodos para trabajar con los ArrayList son los siguientes:

// Declaración de un ArrayList de "String". Puede ser de cualquier otro Elemento u Objeto (float, Boolean, Object, ...)
ArrayList nombreArrayList = new ArrayList();
nombreArrayList.add("Elemento");   // Añade el elemento al ArrayList
nombreArrayList.add(n, "Elemento 2");   // Añade el elemento al ArrayList en la posición 'n'
nombreArrayList.size();   // Devuelve el numero de elementos del ArrayList
nombreArrayList.get(2);   // Devuelve el elemento que esta en la posición '2' del ArrayList
nombreArrayList.contains("Elemento");   // Comprueba se existe del elemento ('Elemento') que se le pasa como parametro
nombreArrayList.indexOf("Elemento");   // Devuelve la posición de la primera ocurrencia ('Elemento') en el ArrayList 
nombreArrayList.lastIndexOf("Elemento");   // Devuelve la posición de la última ocurrencia ('Elemento') en el ArrayList
nombreArrayList.remove(5);   // Borra el elemento de la posición '5' del ArrayList
nombreArrayList.remove("Elemento");   // Borra la primera ocurrencia del 'Elemento' que se le pasa como parametro.
nombreArrayList.clear();   //Borra todos los elementos de ArrayList
nombreArrayList.isEmpty();   // Devuelve True si el ArrayList esta vacio. Sino Devuelve False
ArrayList arrayListCopia = (ArrayList) nombreArrayList.clone();   // Copiar un ArrayList
Object[] array = nombreArrayList.toArray();   // Pasa el ArrayList a un Array

Otra cosa muy importante a la hora de trabajar con los ArrayList son los “Iteradores” (Iterator). Los Iteradores sirven para recorrer los ArrayList y poder trabajar con ellos. Los Iteradores solo tienen tres métodos que son el “hasNext()” para comprobar que siguen quedando elementos en el iterador, el “next()” para que nos de el siguiente elemento del iterador; y el “remove()” que sirve para eliminar el elemento del Iterador.

// Declaración el ArrayList
ArrayList nombreArrayList = new ArrayList();

// Añadimos 10 Elementos en el ArrayList
for (int i=1; i<=10; i++){
	nombreArrayList.add("Elemento "+i); 
}

// Añadimos un nuevo elemento al ArrayList en la posición 2
nombreArrayList.add(2, "Elemento 3");

// Declaramos el Iterador e imprimimos los Elementos del ArrayList
Iterator nombreIterator = nombreArrayList.iterator();
while(nombreIterator.hasNext()){
	String elemento = nombreIterator.next();
	System.out.print(elemento+" / ");
}

Clase Vector

Algunas veces deseamos guardar objetos en un array pero no sabemos cuantos objetos vamos a guardar. Una solución es la de crear un array cuya dimensión sea más grande que el número de elementos que necesitamos guardar. La clase Vector nos proporciona una solución alternativa a este problema. Un vector es similar a un array, la diferencia estriba en que un vector crece automáticamente cuando alcanza la dimensión inicial máxima. Además, proporciona métodos adicionales para añadir, eliminar elementos, e insertar elementos entre otros dos existentes.

Crear un vector

Para usar la clase Vector hemos de poner al principo del archivo del código fuente la siguiente sentencia import

import java.util.*;

uando creamos un vector u objeto de la clase Vector, podemos especificar su dimensión inicial, y cuanto crecerá si rebasamos dicha dimensión.

  Vector vector=new Vector(20, 5);

Tenemos un vector con una dimensión inicial de 20 elementos. Si rebasamos dicha dimensión y guardamos 21 elementos la dimensión del vector crece a 25.

Añadir elementos al vector

Hay dos formas de añadir elementos a un vector. Podemos añadir un elemento a continuación del último elemento del vector, mediante la función miembro addElement.

      v.addElement("uno");

Podemos también insertar un elemento en una determinada posición, mediante insertElementAt. El segundo parámetro o índice, indica el lugar que ocupará el nuevo objeto. Si tratamos de insertar un elemento en una posición que no existe todavía obtenemos una excepción del tipo ArrayIndexOutOfBounds. Por ejemplo, si tratamos de insertar un elemento en la posición 9 cuando el vector solamente tiene cinco elementos.

Para insertar el string "tres" en la tercera posición del vector v, escribimos

     v.insertElementAt("tres", 2);