Saltar al contenido

ArrayList en java.

Los ArrayList en java, permiten crear listas de forma dinámica. Al contrario que ocurre con los arrays o vectores, este tipo de listas no es necesario darles un tamaño inicial.

En primer lugar una de las ventajas de usar este tipo de listas dinámicas, respecto a los arrays, es que se adaptan a su contenido. De esta manera, no es necesario saber la cantidad de elementos que va a contener dicha lista.

Por otra parte si en lugar de usar ArrayList (listas dinámicas), queremos usar arrays, debemos asignarles primeramente un número de elementos.

Además los vectores son listas estáticas, esto quiere decir, que si definimos un objeto vector de 10 elementos, la lista puede contener como máximo esos diez elementos. Por lo tanto, si en un array de 10 elementos metemos más de esos 10, el programa ejecutará una excepción.

Para usar los ArrayList, debemos saber que esta clase, según la API de java, pertenece al paquete “java.util” y hereda de la clase “List”.

Para finalizar, antes de comenzar con ejemplos, es muy importante tener en cuenta que este tipo de listas, solo permiten almacenar objetos. No permiten almacenar tipos de datos primitivos.

Recordar que en java los textos, son objetos, ya que estos pertenecen a la clase String.

Ejemplo de uso de ArrayList en java

Entre los diferentes métodos de la clase ArrayList que podemos utilizar, se encuentra el método add. Este nos permite añadir elementos a nuestra lista. Vamos a ver un ejemplo de como se utiliza este método.

package arranque;
//Importamos el paquete para usar la clase ArrayList
import java.util.*;
public class Principal {
	public static void main(String[] args) {
		
		// Declaramos un ArrayList con elementos de tipo String
		ArrayList<String> listaFrases =new ArrayList<String>();
		
		listaFrases.add("Aprendiendo a usar ArrayList.");
		listaFrases.add("Estamos añadiendo elementos.");
		listaFrases.add("El método add agrega elementos a la lista.");
		listaFrases.add("Cuarto elemento de la lista de frases.");   
	}
}

Como recorrer listas dinámicas o arraylist en java.

Para recorrer este tipo de listas, podemos hacerlo con diferentes tipos de bucles.

Con un bucle foreach en java (for mejorado).

package arranque;
//Importamos el paquete para usar la clase ArrayList
import java.util.*;
public class Principal {
	public static void main(String[] args) {
		
		// Declaramos un ArrayList con elementos de tipo String
		ArrayList<String> listaFrases =new ArrayList<String>();
		
		listaFrases.add("Aprendiendo a usar ArrayList.");
		listaFrases.add("Estamos añadiendo elementos.");
		listaFrases.add("El método add agrega elementos a la lista.");
		listaFrases.add("Cuarto elemento de la lista de frases.");   
		// Construimos el bucle for mejorado
		for(String elemento:listaFrases) {
			
			System.out.println(elemento);
		}	
	}
}

Con un bucle for.

package arranque;
//Importamos el paquete para usar la clase ArrayList
import java.util.*;
public class Principal {
	public static void main(String[] args) {
		
		// Declaramos un ArrayList con elementos de tipo String
		ArrayList<String> listaFrases =new ArrayList<String>();
		
		listaFrases.add("Aprendiendo a usar ArrayList.");
		listaFrases.add("Estamos añadiendo elementos.");
		listaFrases.add("El método add agrega elementos a la lista.");
		listaFrases.add("Cuarto elemento de la lista de frases.");   
		// Construimos el bucle for normal
		for(int posicion=0;posicion<listaFrases.size();posicion++) {
			/* Imprimimos los elementos, teniendo en cuenta que
			 * el método get de la variable objeto listaFrases
			 * de tipo ArrayList, recibe un parametro
			 * de tipo entero, en este caso posicion y
			 * devuelve el valor que se encuentra en esa posición. */
			System.out.println(listaFrases.get(posicion));
		}
	}
}

Como copiar un ArrayList a un array.

package arranque;
//Importamos el paquete para usar la clase ArrayList
import java.util.*;
public class Principal {
	public static void main(String[] args) {
		
		// Declaramos un ArrayList con elementos de tipo String
		ArrayList<String> listaFrases =new ArrayList<String>();
			
		// Agregamos los elementos del ArrayList
		listaFrases.add("Aprendiendo a usar ArrayList.");
		listaFrases.add("Estamos añadiendo elementos.");
		listaFrases.add("El método add agrega elementos a la lista.");
		listaFrases.add("Cuarto elemento de la lista de frases.");   
		
		/* Declaramos un array del tamamos del ArrayList*/
		String vector[] =new String[listaFrases.size()];
		
		/* Copiamos el ArrayList en el array*/
		listaFrases.toArray(vector);
		
		/* Ahora mostramos el vector con un bucle for each*/
		for(String elemento:vector) {
			System.out.println(elemento);
		}
	}
}