Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Exception! Al querer ordenar una lista

Hola, tengo una consulta... Quiero ordenar una lista de títulos con el método Comparable...

public class Titulo implements Comparable { private String nombre;

    @Override
    public int compareTo(Titulo otroTitulo) {
        return this.nombre.compareTo(otroTitulo.getNombre());
}

Pero al ejecutar, si bien la lista aparece ordenada, que es lo que buscaba, seguidamente me sale esta excepción en consola:

Exception in thread "main" java.util.ConcurrentModificationException at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1013) at java.base/java.util.ArrayList$Itr.next(ArrayList.java:967) at com.aluracursos.screenmatch.principal.PrincipalConListas.main(PrincipalConListas.java:30)

Cómo puedo resolverlo? Muchas gracias!

2 respuestas
solución!

¡Hola Luissina, espero que estés bien!

Entiendo tu problema. Parece que estás obteniendo una excepción de java.util.ConcurrentModificationException al intentar ordenar una lista de títulos con el método Comparable. Esta excepción se produce cuando se intenta modificar una colección mientras se itera sobre ella.

En tu caso, es posible que estés modificando la lista mientras intentas ordenarla, lo cual genera esta excepción. Para evitar esto, te recomendaría que utilices el método sort de la clase Collections para ordenar tu lista. Aquí te muestro un ejemplo de cómo podrías hacerlo:

import java.util.Collections;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<Titulo> listaDeTitulos = new ArrayList<>();
        // Agregar títulos a la lista

        // Ordenar la lista
        Collections.sort(listaDeTitulos);
    }
}

Asegúrate de que la clase Titulo implemente la interfaz Comparable de la siguiente manera:

public class Titulo implements Comparable<Titulo> {
    private String nombre;

    @Override
    public int compareTo(Titulo otroTitulo) {
        return this.nombre.compareTo(otroTitulo.getNombre());
    }
}

Al implementar la interfaz Comparable y utilizar el método sort de Collections, deberías poder ordenar tu lista de títulos sin obtener la excepción que mencionaste.

Espero que esta solución te sea de ayuda. ¡Buena suerte con tu proyecto y cualquier otra duda que tengas, aquí estoy para ayudarte!

Espero haber ayudado y buenos estudios!

Muchas gracias Brenda!!!