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

Método simplificado de comparación de enteros

Si voy a comparar objetos tipo int, creo que sería más fácil hacer una resta y devolver el resultado.

@Override
public int compareTo(Cuenta otra) {
    return this.saldo - otra.saldo;
}

Si el resultado de la resta es positivo es porque this es mayor que otra y si es cero es porque son iguales.

¿En qué casos (comparando int podría fallar mi ejemplo?

1 respuesta

Hola Javier, espero que estés bien

Tu enfoque de usar la resta para comparar enteros es una técnica común y funciona bien en muchos casos. Sin embargo, hay algunas situaciones en las que podría fallar, especialmente cuando se trata de tipos de datos int en Java:

  1. Desbordamiento de enteros: Si los valores de saldo son muy grandes o muy pequeños, la resta podría provocar un desbordamiento. Por ejemplo, si this.saldo es Integer.MAX_VALUE y otra.saldo es un número negativo grande, la resta podría dar un resultado incorrecto debido al desbordamiento.

  2. Orden descendente: En el contexto de tu ejercicio, parece que necesitas implementar la comparación para ordenar en orden descendente. Tu método actual ordena en orden ascendente. Para cambiar a descendente, podrías invertir la lógica de comparación.

En resumen, aunque la resta es una forma rápida de comparar enteros, debes tener cuidado con el desbordamiento y asegurarte de que el orden de clasificación deseado se refleje correctamente en tu implementación. En el caso de tu ejercicio, la implementación correcta para ordenar en orden descendente sería la opción A, que utiliza comparaciones explícitas para evitar problemas de desbordamiento.

Espero haber ayudado y buenos estudios!