Array List

Post on 26-Jul-2015

176 views 1 download

Transcript of Array List

Interface List

Introducción

Las aplicaciones frecuentemente necesitan almacenar un grupo de datos en un sólo objeto. Los arrays sirven bien para este propósito, pero algunas veces necesitamos incrementar o reducir dinámicamente el número de elementos del array, o hacer que contenga distintos tipos de datos.

Introducción

Esto es común entre las aplicaciones como las tiendas online. Un cliente añade una mercancía a su carro de la compra, y detrás de la escena, los ítems son almacenados y eliminados automáticamente.

¿Qué es Interface

List?

ArrayList

La clase ArrayList (Java.util) es un objeto lista que implementa la interfaz Collection de Java. Esta Clase permite contener y ordenar objetos, incluso, puede almacenar objetos duplicados. Su tamaño es dinámico, es decir, esta lista crecerá a medida que se inserten en ella más elementos. Debemos recordar que el índice de un ArrayList empieza en 0 (CERO), es decir, el primer elemento del ArrayList tiene como índice el 0 (CERO).

ArrayList

Una lista se diferencia de un menú desplegable porque son estáticas (no se despliegan). 

Las listas (List) aparecen en los interfaces de usuario para facilitar a los operadores la manipulación de muchos elementos. Se crean utilizando métodos similares a los de los botones Choice. La lista es visible todo el tiempo, utilizándose una barra de desplazamiento para visualizar los elementos que no caben en el área que aparece en la pantalla.

ArrayList

ArrayList tiene varios constructores, dependiendo de cómo necesitemos construir el ArrayList . Los siguientes dos constructores nos ayudarán a empezar:

ArrayList

ArrayList() construye un ArrayList con capacidad cero por defecto, pero crecerá según le vayamos añadiendo: 

ArrayList al = new ArrayList();

ArrayList(int initialCapacity) construye un ArrayList vacío con una capacidad inicial especificada: 

ArrayList al2 = new ArrayList(5);

ArrayList

Un objeto ArrayList sólo contiene referencias a objetos. Para almacenar tipos primitivos como double , long , o float , usamos una clase envoltura. Para añadir objetos al ArrayList , llamamos a sus métodos con el operador punto:

ArrayList

al.add("Java Technology Book"); //Agrega a una cadena de caracteres al.add(new Double(40.00)); // añade double en un contenedor de claseSystem.out.println(al.size()); //imprime el tamaño de la clase ArrayList

ArrayList

Si necesitamos circular a través de los elementos del ArrayList , usamos la clase Iterator y sus métodos hasNext y next :

Iterator alIt = al.iterator(); while (alIt.hasNext()) { System.out.println(alIt.next() + " "); }

ArrayList

ArrayList es una de las muchas clases del Collection Framework, que proporciona un conjunto de interfaces y clases bien-diseñados para almacenar y manipular grupos de datos como una sola unidad, una colección.

Agregar elementos

El ArrayList contendrá diversos elementos que debemos gestionar, para agregar elementos, se puede hacer de dos formas usando el método add(…) que recibe por parámetro un objeto de tipo object.

Agregar elementos

1 // instanciamos un nuevo ArrayList2 ArrayList mi_lista = new ArrayList();34 // agregamos el elemento, por defecto

lo agregará de último5 mi_lista.add("elemento 1");

Agregar elementos

1 // instanciamos un nuevo ArrayList2 ArrayList mi_lista = new ArrayList();34 // agregamos el elemento, por defecto

lo agregará de último5 mi_lista.add(1, "elemento A");

Eliminar elementos

Para eliminar elementos se dispone del método remove(…) en el cual se recibe como argumento el objeto o eliminar el elemento conociendo su índice.

Eliminar elementos

1 Persona persona_1 = new Persona("Julian", 20);

2 Persona persona_2 = new Persona("Betty", 17);

3 Persona persona_3 = new Persona("Marta", 22);

45 ArrayList mi_lista = new ArrayList();67 // agregamos unos cuantos elementos

8 mi_lista.add(persona_1);

Eliminar elementos

9 mi_lista.add(persona_2);10 mi_lista.add(persona_3);11 // la estructura de la lista ha quedado así: 0

= [Julian] 1 = [Betty] 2 = [Marta]1213 // si queremos eliminar a "Betty" por su

índice seria así:

14 mi_lista.remove(1) // el 1 pertenece al índice o posición de Betty en la lista

15 // la estructura de la lista ha quedado así: 0 = [Julian] 1 = [Marta]

Eliminar elementos

1 Persona persona_1 = new Persona("Julian", 20);

2 Persona persona_2 = new Persona("Betty", 17);

3 Persona persona_3 = new Persona("Marta", 22);

45 ArrayList mi_lista = new ArrayList();67 // agregamos unos cuantos elementos

8 mi_lista.add(persona_1);

Eliminar elementos

9 mi_lista.add(persona_2);10 mi_lista.add(persona_3);11 // la estructura de la lista ha quedado así: 0

= [Julian] 1 = [Betty] 2 = [Marta]1213 // si queremos eliminar a "Julian" debemos

"enviarle a Julian" de nuevo

14 mi_lista.remove(persona_1) // se envía la instancia de Julian

15 // la estructura de la lista ha quedado así: 0 = [Betty] 1 = [Marta]

Definiciones

Para determinar la cantidad de elementos de la lista solo se llama al método size(…)

1 int total = mi_lista.size();

Para Vaciar la lista y dejarla sin ningún elemento en ella se usa el método clear (…)

1 mi_lista.clear();

Definiciones

Para saber si un objeto está insertado en lista usamos el método contains(…), el cual devuelve true si existe o un false si sucede lo contrario.1 boolean existencia =

mi_lista.contains(elObjetoBuscado);

Para saber si la lista está vacía, es decir, si no tiene elementos usamos isEmpty(…) que devuelve true si NO hay elementos o un false si contiene algún elemento.

1 boolean vacía = mi_lista.isEmpty();

Definiciones

Para pasar o copiar los elementos a un arreglo de objetos (TipoObjeto objetos[]) se usa el método toArray (…)

1 Object objetos [] = mi_lista.toArray();

Ventajas de la ArrayList

El cambio de tamaño automático. Cómodo de usar. ArrayList tiene métodos que añadir,

insertar y eliminar una serie de elementos.

Fácil de crear un thread-safe ArrayList utilizando el método sincronizado .

Desventajas de la ArrayList

ArrayList se limita a una sola dimensión, con un límite inferior de cero , (pero puede ser utilizado para almacenar objetos , podemos utilizar esta función para hacer la ArrayList multi-dimensional (virtual)).

ArrayList se limita a acumular sólo objetos.

En cuanto al rendimiento, es lento.

Conclusión

¡Muchas Gracias!