Hola,
Tienes toda la razón, solo un par de comentarios adicionales con el afán de compartir nada mas,
Cita:
Iniciado por Profesor_Falken ...
-Si un elemento de la lista es null explota con un NullPointerException.
La especificación de Objects.compare(T o1, T o2, Comparator<T>), así lo define, si uno es null 'posiblemente' tire un NullPointerException. No digo que no se pueda corregir o no sea buena observación, simplemente que la interface Comparator no define eso.
Sería aconsejable validar los nulos al principio con el código que propusiste.
Cita:
Iniciado por Profesor_Falken ...
-Da prioridad a las palabras con menos letras, que no es lo que se busca.
Tienes toda la razón en eso también, ya será cosa de shenron66 modificarlo a sus requerimientos correctamente, que adicionalmente indicaba que necesitaba el ordenamiento en Español, eso incluye la Ñ en la posición correcta, y no lo implementé tampoco. Solo es para que se dé una idea de como hacerlo.
Cita:
Iniciado por Profesor_Falken ...
Para arreglarlo basta con desplazar el if de la longitud después del bucle.
...
Creo que la corrección sería mas compleja que eso, porque en el ciclo, si no son de la misma longitud posiblemente tiraría una excepción. Pero es muy buena observación y tendrá que modificarlo shenron66 consecuentemente.
Saludos,