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