15.2 ARRAYLIST II

 

Hola a todos, ¿qué tal? vamos a seguir trabajando con el ejemplo anterior, hemos visto que al añadir nuevos elementos se añaden en el último lugar queremos que se añadan en la posición que deseemos, con los arrays utilizábamos la posición ([0]), con los ArrayList tenemos que utilizar dos métodos: set() y get(). El método set() permite incluir o reemplazar un objeto dentro de un ArrayList en concreto, mientras que el método get() nos permite obtener qué elemento hay dentro de un ArrayList en una posición en concreto, es cómo manejar los índices de los arrays pero en este caso es un poco más complejo ya que hemos de utilizar estos dos métodos. Imaginaros que el siguiente elemento:



Lo queremos incluir en la posición 1. Hay que tener en cuenta que aunque no lo veamos la posición de los elementos del ArrayList empiezan por 0, la segunda posición sería 1, la tercera posición sería el 2… Vale pues, queremos incluir este elemento en la posición 1 lo haríamos con el método set():

            //listaEmpleado.add(new Empleado("Julia", 25, 1100));

           

            listaEmpleado.set(1, new Empleado("Julia", 25, 1100));

En lugar de utilizar el método add() utilizamos el método set() que nos pide dos parámetros: el primer parámetro es la posición y el segundo es la descripción del elemento.

Si ejecutamos:



Vemos en consola que aparece en la posición 1 teniendo en cuenta que la primera posición es el 0.

Con el método get() le vamos a indicar que nos imprima el elemento que ocupa el 5 lugar para ello comentamos las siguientes líneas de código:



Y se lo indicamos de esta manera:

System.out.println(listaEmpleado.get(4).dameDatos());

Le indicamos la posición 4 ya que los elementos del ArrayList empiezan por 0 y añadimos también el método dameDatos(), si ejecutamos:



Bien pues visto esto comentamos las líneas donde hemos utilizado los métodos set() y get() y descomentamos el System.out y el for each:



Para recorrer el ArrayList hemos utilizado el bucle for each que es el bucle for mejorado que ya lo hemos estado utilizando bastante a lo largo del tutorial. Si queremos utilizar el bucle for convencional para los ArrayList es un inconveniente ya que no disponen de posiciones lo utilizaríamos de la siguiente forma, comentamos de nuevo el bucle for each:

            for(int i=0; i<listaEmpleado.size(); i++) {

                 

                  Empleado e = listaEmpleado.get(i);

                 

                  System.out.println(e.dameDatos());

            }

En lugar de utilizar el método lenght() como en los arrays utilizamos el método size() creamos una variable de tipo Objeto llamada e que va ser igual a los elementos que se vaya encontrando a cada vuelta del bucle y mediante un System.out le indicamos que nos imprima esos datos:



Si vemos la comparación entre utilizar el for each o el for convencional es más fácil utilizar el for each aunque hay algunos que no se sienten muy familiarizados con este tipo de for y el utilizar el for convencional para un ArrayList les parece un poco engorroso y suelen utilizar los arrays normales en lugar del ArrayList, sin embargo, para estos casos existe una solución y sería convertir el ArrayList en un array normal, comentamos las siguientes líneas de código para verlo:



Nos creamos un array de tipo Empleado que le pasamos como posición los elementos del ArrayList:

Empleado arrayEmpleado[] = new Empleado[listaEmpleado.size()];

Después almacenamos los elementos del ArrayList en el array normal:

            Empleado arrayEmpleado[] = new Empleado[listaEmpleado.size()];

           

            listaEmpleado.toArray(arrayEmpleado);

Luego con un bucle for recorreríamos el array y con un System.out imprimiríamos el contenido del array:

            Empleado arrayEmpleado[] = new Empleado[listaEmpleado.size()];

           

            listaEmpleado.toArray(arrayEmpleado);

           

            for(int i=0; i<arrayEmpleado.length; i++) {

                 

                  System.out.println(arrayEmpleado[i].dameDatos());

            }

Probamos:



Con cualquier duda, por favor, hacérmelo llegar a través de los comentarios del blog o enviándome un correo a amizba@gmail.com Hasta pronto!

15.1 ARRAYLIST I << >> 15.3 ITERADORES




No hay comentarios:

Publicar un comentario