¿Cómo encadenar y aplicar una secuencia de comparadores?

No use un valor de identidad para Comparators. Si la comparatorssecuencia está vacía (es decir, no contiene ninguna Comparator), no debe ordenar:

Stream result=comparators.reduce(Comparator::thenComparing)
             .map(unsorted::sorted).orElse(unsorted);

Tenga en cuenta que si la comparatorssecuencia contiene solo uno Comparator, Comparatorserá el resultado de la reducción.


La referencia de método pasada Optional.mappodría necesitar algo de experiencia para acostumbrarse. Por lo tanto, podría valer la pena usar la sintaxis lambda más detallada para mostrar lo que está sucediendo allí:

Stream<String> result=comparators.reduce(Comparator::thenComparing)
    .map((comparator) -> unsorted.sorted(comparator)).orElse(unsorted);

Es una cuestión de estilo de programación o preferencia personal y puede cambiar con el tiempo.

Respuesta 1

Spring-boot v1.4.1 Java v1.8 Thymeleaf v2.1.5. La siguiente línea de código en mi opinión: <td th: each = "sprint: $ {sprints}" th: text = "$ {sprint.releaseDate}? $ {# Temporals.format (sprint.releaseDate, ...

Antecedentes Uso de JDK 6 para cargar archivos XML en DOM. Los archivos XML deben validarse con un XSD. La ubicación del archivo XSD difiere según el entorno en ejecución. Asegurar que el XML puede ser ...

Quiero llamar dos tablas de diferentes bases de datos a la vez. La tabla de la base de datos A contiene la identificación del usuario y la tabla de la base de datos B contiene la ubicación del usuario con la identificación del usuario, por lo que quiero unir estas dos tablas y obtener ...

Necesito saber si el horario de verano está activado ahora usando las nuevas clases de fecha y hora de Java 8. Encontré una entrada sobre cómo hacer esto en jodatime: jodatime cómo saber si el horario de verano está activado Pero, ¿cómo puedo ...