1
respuesta

[Duda] Duda sobre el override de compareTo:

Hola, buen día :) Tengo una duda, y es la forma en la que se realiza la lógica en esta siguiente sección el código (que realiza el profe en clase). No tengo claro por qué al hacer el compare con el wrapper de Integer, compara this.agencia con o.getAgencia(). ¿Cómo el programa maneja esos valores? ¿Cómo se cuáles son los datos que él va tomando (para this.agencia y para o.getAgencia()? Gracias :)

@Override
public int compareTo(Cuenta o) {
    //Orden por default: Por número de agencia:
    return Integer.compare(this.agencia, o.getAgencia());
}
1 respuesta

¡Hola David! Espero que estés bien.

El método compareTo está utilizando el método compare de la clase Integer para comparar el atributo agencia de la cuenta actual (this.agencia) con el atributo agencia de la cuenta pasada como parámetro (o.getAgencia()).

En este caso, this.agencia y o.getAgencia() son valores enteros que representan el número de agencia de cada cuenta. El método compare de la clase Integer compara estos valores y devuelve un número negativo si this.agencia es menor que o.getAgencia(), cero si son iguales, o un número positivo si this.agencia es mayor que o.getAgencia().

Por lo tanto, al utilizar Integer.compare(this.agencia, o.getAgencia()) en el método compareTo, estás definiendo el criterio de ordenación por el número de agencia de las cuentas. Esto significa que cuando ordenes una lista de cuentas utilizando el método sort de la clase Collections, se utilizará este criterio para determinar el orden de las cuentas en la lista.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios.