1
respuesta

[Duda] Comparator.comparing(Cursos::getNombre)==Comparator.comparing(Cursos::toString)

Siendo que en Comparator.comparing(Cursos::getNombre) es lo mismo si pongo getNombre o toString, ya que le dijimos previamente que cuando hagamos toString imprima el texto del nombre... no sería entonces mejor usar el toString? Sino, cual sería la diferencia conceptual?

1 respuesta

¡Hola Paula!

En cuanto a tu pregunta, la diferencia conceptual entre Comparator.comparing(Cursos::getNombre) y Comparator.comparing(Cursos::toString) es que el primero se basa en la comparación del atributo nombre de la clase Cursos, mientras que el segundo se basa en la comparación del resultado de la conversión a String de la clase Cursos.

El método getNombre() devuelve el valor del atributo nombre de la clase Cursos, mientras que el método toString() devuelve una cadena que representa la clase Cursos. Aunque en tu caso particular hayas definido que el método toString() imprima el nombre del curso, esto no siempre es así. En general, el método toString() se utiliza para representar una clase de manera general, y no necesariamente para obtener un atributo específico.

Por lo tanto, si deseas comparar los objetos Cursos por su atributo nombre, es preferible utilizar Comparator.comparing(Cursos::getNombre). Si deseas comparar los objetos Cursos por su representación en cadena, entonces utiliza Comparator.comparing(Cursos::toString).

Espero haber aclarado tu duda. ¡Buenos estudios!