Bienvenidos.
Continuamos con las listas.
Vamos a ver los método más importante de ArrayList y general de cualquier tipo lista.
Ya hemos visto algunos métodos.
Hemos trabajado en algunos ejemplos, pero la idea de profundizar un poco más y aterrizar estos conceptos.
Bien, entonces vamos a cerrar Trichet comparable.
También cerramos ejemplo el comparable con paraditos, dejamos alumno y vamos a copiar el ejemplo list.
Compararle con paraditos para reutilizar algunos alumnos.
Perfecto.
Control C Lo pegamos en el package set y lo renombrar.
Entonces.
Ejemplo ArrayList.
Ok.
Listo, vamos a modificar primero es un ArrayList, aunque también es compatible con el like, el listo
a red listo, comparten los mismos métodos, importamos.
Le vamos a llamar a L de ArrayList también acá en los AB.
Hasta acá y todo se abajo, lo eliminamos.
Entonces seleccionamos y borramos bien, el primer metodo importante es el 6.
Entonces vamos a imprimir acá un shout, vamos a imprimir la lista a l coma espacio 6 o tamaño igual
concatenado con a l punto 6.
Perfecto.
Voy a copiar esto, copiamos y lo pegamos acá abajo.
Entonces, antes de agregar elemento y después de agregar elemento.
Bueno, por supuesto, antes de hacer cero bien y por acá shout otro metodo importante esta hacía la
lista concatenados con a l punto iciente bien y levantamos.
Seis cero.
Estado vacía hacia.
Y luego imprimimos los elementos acá, más abajo.
Pato con su nota, Cata luce, etcétera.
Y con tamaño 5 ahora tiene cinco elementos.
Bien, hasta el momento simple.
Pero la idea también ver algunas variantes.
Por ejemplo, el método.
Voy a modificar a Jano para que se encuentre.
Por ejemplo, para agregarlo en la posición 2.
Entonces coloco dos acá.
Coma espacio.
Qué a pasar.
Patotas la cero.
CautÃn la 1.
Lucita las dos.
Lucita en la posición donde queremos guardar a Jano.
Por lo tanto Jano se guarda en la posición 2.
Pero Lucy se mueve a la posición 3.
Se tiene que desplazar y finalmente Lucy quiere la posición 3 y Andrés en la posición 4.
Pero recuerden parten cero Pato Cero Cata 1.
Lucy se desplaza a la posición 3.
Jano aquí en la posición 2 donde estaba Lucy y Andrés en la 4.
Veamos.
Pato Cero.
Cata.
1.
Jano en la posición 2 se fijan, se movió las dos luces, se desplaza a la posición 3 y 3 en la posición
4.
Entonces con el AB y el índice podemos guardar un elemento en una posición dada.
Bien.
Ahora, qué pasa si Andrés en vez de dar, colocamos set de asignar en la posición 3?
Qué va a pasar?
Bueno.
Quién está en la posición 3?
Lucy.
Por qué se desplaza?
Jano queda en la 2 y Luz en la 3.
Y qué va a pasar?
Que Andrés se va a asignar a la posición 3.
Pero cuando es SET, a diferencia del AT que agrega y desplaza el set, modifica.
Por lo tanto va a reemplazar Lucy por Andrés y ahora la lista va a tener 4 elemento y no 5, porque
acá es un set, no es un NAT, no agrega, sino modifica en la posición 3.
Dónde está Lucy?
Veamos.
Pato cero, cata.
1.
Jano 2.
Perfeto Quijano se mueva acá, Lucy Queen la 3.
Pero luego Andrés quien la 3 es reemplazado por Lucy.
Por lo tanto Lucy desaparece y Andrés queda en la posición 3 tamaño 4.
Ya no es 5.
Entonces la diferencia entre el set y el lado y las posiciones.
Veamos el eliminar al.
Tenemos el método Remove 2 opciones por índice o por objeto?
Por instancia.
Por ejemplo, si eliminamos por instancia o projeto, voy a eliminar Majano New Alumno Quijano y su
nota era 7.
Tiene que ser idéntico a mi mujer.
Tomemos valorea 7 pefecto.
Shout.
Bueno, imprimimos la lista a l más
perfecto.
Veamos qué pasa.
Recuerden que Jano está en la posición 2 después de Katha.
Veamos ahora entonces Pato Katha, Andrés y Jano, que está en la posición 2, se elimina, desaparece,
ahora tiene tamaño 3 y no 4.
Pero qué pasa si colocamos alumno Jano?
Nota cualquier otro da lo mismo.
5.
Se elimina o nos elimina?
Veamos.
No se elimina.
Jano se mantiene.
Pero no se elimina porque este alumno Jano con Nota 5, no existe en la lista.
Tiene que ser idéntico.
Bueno, y esto cómo lo hace por debajo?
Es decir, cómo en el remu va a buscar por el alumno y va a filtrar y eliminar cómo lo realiza con el
equals?
Y recuerden que por acá tenemos el equals, más abajo acá.
Iba a ser igual, siempre y cuando el nombre y además la nota es importante con el Aunt nombre y la
nota.
Entonces con el lículas podemos personalizar cuando los objetos son iguales y recuerdan el ritmo.
Utiliza el equals para buscar el objeto y eliminarlo.
Entonces, si la nota no coincide, no lo encuentra y no lo elimina, salvo que sea solamente por nombre,
ya que lo elimina.
Ahí da lo mismo.
La nota puede ser 5 la que sea.
Y lo eliminar.
Ahora ya no está Jano.
Entonces también es muy importante el equals con el método Remove.
Pero lo deja como estaba.
Con la nota.
Entonces se hará.
Bueno, ahora no lo elimina.
Qué más?
Y lo mismo.
Nota 7 Ahí lo elimina.
Pero si cambiamos el nombre, aunque sea muy sutil, en minúsculas, gano.
Pero son carácter distintos y que tampoco lo borra.
Porque con minúscula y en realidad Jano está registrado con mayúscula.
Entonces tiene que ser idéntico.
Idéntico.
A este que lo limita?
Bueno, y por supuesto, si la misma instancia.
Es decir, si creamos lentas Sejano afuera y pasamos el objeto Jahn acá y el objeto Jano acá, como
lo sus mismos valores también lo ha eliminado porque compará por la referencia.
Y recuerden que el equals acá primero lo que hace buscar o comprobar por referencia si son idénticos
el mismo objeto.
Recuerden que el objeto se guarda en una dirección en la memoria.
Por lo tanto, si utiliza una referencia.
Estas dos referencias apuntan a la misma dirección.
Es idéntico el objeto.
Por lo tanto retorna true y también lo eliminaría.
Ven y pasa lo mismo con el contains.
Se acuerda del método context para preguntar si un alumno existe o no?
Veamos.
Ah.
Y me faltó ver por índice.
Lo voy a comentar.
A l punto remu también tenemos por índice, por ejemplo, Jano está en la posición 2.
Acá tenemos en la posición 2, donde colocamos 2 y también va a borrar a Jano a través del índice.
Elimina.
Si quiero borrar, por ejemplo, a Pato, colocamos 0.
Pathos desaparece y está.
Jano Andrés 3 elemento.
Dejamos éste y comentamos éste para que lo tengan ahí por índice y por instancia, por instancia utiliza
el equals.
Recuerden bien, veamos el contains bullían MP igual a l punto contents y pasamos el objeto, una instancia,
una referencia y lo mismo tiene que ser exacta.
Por ejemplo, esta de acá Majano, shout,
majano.
Vamos a colocar un igual V.
El bullían.
Debería ser falso porque ajá, no lo eliminamos con el remu, entonces no está, no debería estar.
Diré ser fols fols.
Y está bien.
Ahora, por ejemplo, Hakata, en vez de Jano, Catha, Lleca, Hakata, lo encontrar tampoco no debería.
Por qué?
Porque no es idéntico, a pesar de que el nombre es igual, pero la nota de Cata 6 y acá dice 7.
Entonces vamos a alentar, va a ser fols.
No lo encuentra.
Pero si cambiamos a Nota 6, recuerden que el igual compara por nombre y por nota.
Va ctro.
Entonces es muy importante el metódicas también para contains si lo contiene.
Qué otro método?
Bueno, si quiero convertir esta lista ArrayList en un arreglo Hoggett del tipo object arreglo corchete
igual a L.1 tu array y podemos iterar con un for con un clásico for o también con un for echo, pero
con el for int i partiendo de cero itera mientras li sea menor que el total a punto lenka incrementamos
y mostramos shout
desde el arreglo a ese arreglo el índice y que sea incrementando.
Tenemos el objeto y vamos a imprimir cada objeto pero a del string.
Desterré lo pato katha, Andrés.
Recuerden que eliminamos a Jano y reemplazamos a Andrés por el 3 y el Luzy cuando se desplazaba.
Entonces finalmente tenemos 3 elementos nada más.
Continuamos en la siguiente clase.