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

Duda sobre el tema 07 Ordenando Listas

Del curso Java y java.util: Colecciones, Wrappers y Lambda expressions ... Duda en el tema 07 Ordenando Listas.... En el código cuando se crea la segunda clase de implementación class OrdenadorPorNumeroCuenta implements Comparator{

Se sobre escribe el método **compare** hasta ahi todo bien...

Pero cuando regresamos a la clase de prueba para testear el codigo

Comparator<Cuenta> comparator = new OrdenadorPorNumeroCuenta();

en ningún momento se llama al método **compare** sobreescrito...
entonces para este caso mi duda es, si se llama en automático o en que momento es llamado y por quien es llamado
1 respuesta

¡Hola Pablo!

En el código que mencionas, cuando se crea la segunda clase de implementación OrdenadorPorNumeroCuenta, se está implementando la interfaz Comparator<Cuenta>. Esto significa que estás definiendo una forma personalizada de comparar objetos de tipo Cuenta.

El método compare que sobreescribes en la clase OrdenadorPorNumeroCuenta es el método que se utilizará para comparar dos objetos de tipo Cuenta y determinar su orden. Sin embargo, este método no se llama automáticamente cuando creas una instancia de OrdenadorPorNumeroCuenta.

En cambio, cuando deseas utilizar el comparador personalizado, debes pasarlo como argumento a un método o función que lo requiera. Por ejemplo, si tienes una lista de objetos Cuenta y deseas ordenarla utilizando el comparador OrdenadorPorNumeroCuenta, puedes hacerlo de la siguiente manera:

List<Cuenta> listaCuentas = new ArrayList<>();
// Agregar elementos a la lista...

Comparator<Cuenta> comparador = new OrdenadorPorNumeroCuenta();
Collections.sort(listaCuentas, comparador);

En este ejemplo, se utiliza el método sort de la clase Collections para ordenar la lista listaCuentas utilizando el comparador OrdenadorPorNumeroCuenta. Dentro de este método, se llamará automáticamente al método compare que has sobrescrito en la clase OrdenadorPorNumeroCuenta para comparar los elementos de la lista y ordenarlos correctamente.

Espero que esto aclare tu duda. Si tienes alguna otra pregunta, no dudes en preguntar. ¡Buena suerte con tus estudios!

Espero haber ayudado y buenos estudios!

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