Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Eliminando un objeto DESEADO de la lista

Aunque la solución que plantea el tutor funciona si solo quiero quitar a Pedro, me pregunté y qué pasa si en mi lista tengo dos elementos con el mismo nombre? y al aplicar la solución inicial de indicar el .remove(Pedro) me elimina el primero de la lista, pero si quiero es quitar otro "Pedro" de la lista como lo haría?, y la respuesta que identifiqué es colocarque el index en lugar de la palabra ==>

Solucion Inial con la palbra "Pedro" .... Elimina el primer Pedro de la Lista (no el segundo que es el que quiero quitar)

List<String> listaInicial = new ArrayList<>();
            listaInicial.add("Juana");
            listaInicial.add("Lucas");
            listaInicial.add("Pedro");
            listaInicial.add("Antonio");
            listaInicial.add("Pedro");

        System.out.println("Lista inicial: " + listaInicial);

            listaInicial.remove("Pedro");
        System.out.println("Lista actualizada: " + listaInicial);

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad
SOLUCION USANDO EL INDEX ... para eliminar el segundo "Pedro" de la lista

List<String> listaInicial = new ArrayList<>();
            listaInicial.add("Juana");
            listaInicial.add("Lucas");
            listaInicial.add("Pedro");
            listaInicial.add("Antonio");
            listaInicial.add("Pedro");

        System.out.println("Lista inicial: " + listaInicial);

            listaInicial.remove(4);
        System.out.println("Lista actualizada: " + listaInicial);
        

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola Fabio, espero que estés bien

Entiendo tu preocupación sobre cómo eliminar un elemento específico cuando hay duplicados en la lista. Lo que mencionas sobre usar el índice es una solución válida si conoces la posición del elemento que quieres eliminar. Sin embargo, si deseas eliminar un "Pedro" específico sin conocer su índice exacto, puedes usar un enfoque diferente.

Aquí tienes una manera de hacerlo utilizando un bucle para encontrar y eliminar el segundo "Pedro":

List<String> listaInicial = new ArrayList<>();
listaInicial.add("Juana");
listaInicial.add("Lucas");
listaInicial.add("Pedro");
listaInicial.add("Antonio");
listaInicial.add("Pedro");

System.out.println("Lista inicial: " + listaInicial);

int contador = 0;
for (int i = 0; i < listaInicial.size(); i++) {
    if (listaInicial.get(i).equals("Pedro")) {
        contador++;
        if (contador == 2) { // Eliminar el segundo "Pedro"
            listaInicial.remove(i);
            break;
        }
    }
}

System.out.println("Lista actualizada: " + listaInicial);

En este ejemplo, recorremos la lista y contamos cuántas veces aparece "Pedro". Cuando encontramos el segundo "Pedro", lo eliminamos.

Espero que esto te ayude a manejar situaciones similares en el futuro. ¡Bons estudios!