¿Cuál es la mejor manera de obtener el valor mínimo y máximo de una lista de Comparables que contienen valores nulos?
Estoy pensando en algo como esto:
public static <T extends Comparable<T>> T minOf(T...ts){
SortedSet<T> set = new TreeSet<T>(Arrays.asList(ts));
return set.first();
}
public static <T extends Comparable<T>> T maxOf(T...ts){
SortedSet<T> set = new TreeSet<T>(Arrays.asList(ts));
return set.last();
}
Pero no es nulo seguro, que es algo que también quiero.
¿Conoces una mejor manera de resolver este problema?
EDITAR:
Después de los comentarios, también probé min ():
public static <T extends Comparable<T>> T minOf(T...ts){
return Collections.min(Arrays.asList(ts), new Comparator<T>(){
public int compare(T o1, T o2) {
if(o1!=null && o2!=null){
return o1.compareTo(o2);
}else if(o1!=null){
return 1;
}else{
return -1;
}
}});
}
¿Qué piensas de eso?