Tengo un método que necesita un Comparator
para uno de sus parámetros. Me gustaría pasar un Comparator
que hace una comparación normal y un comparador inverso que lo hace a la inversa.Comparador directo en Java de fábrica
java.util.Collections
proporciona un reverseOrder()
esto es bueno para la comparación inversa, pero no pude encontrar ningún Comparator
normal.
La única solución que se me vino a la mente es Collections.reverseOrder(Collections.reverseOrder())
. pero no me gusta porque el doble método llama al interior.
Por supuesto que podría escribir un NormalComparator
así:
public class NormalComparator<T extends Comparable> implements Comparator<T> {
public int compare(T o1, T o2) {
return o1.compareTo(o2);
}
}
Pero estoy realmente sorprendido de que Java no tiene una solución para este fuera de la caja.
Es mi método, así que no tiene un orden natural. (en realidad lo ha hecho, porque lo escribí para trabajar, pero no quería, estoy buscando una solución más agradable) –
Y sí, lo escribí porque busqué la fuente de 'HashTree'. –
@KARASZI: que '' HashTree' estás hablando? No hay tal clase en Java SE. ¿Querías decir 'TreeMap'? –