Finding max or min of exactly two objects

Brian Goetz brian.goetz at oracle.com
Tue May 13 15:52:57 UTC 2025


> Well, probably I formulated it not so clearly. I'd like to have the
> following additions:
>
> public interface Comparator<T> {
> ...
>      default T max(T a, T b) {
>          return compare(a, b) > 0 ? a : b;
>      }
>
>      default T min(T a, T b) {
>          return compare(a, b) > 0 ? b : a;
>      }
>
>      static <T extends Comparable<T>> T max(T a, T b) {
>          return a.compareTo(b) > 0 ? a : b;
>      }
>
>      static <T extends Comparable<T>> T min(T a, T b) {
>          return a.compareTo(b) > 0 ? b : a;
>      }
> }

Let's separate these.  I think the first two have a good claim to be in 
Comparator; I think the latter two probably live better in Comparable, 
which feels like a separate conversation (and maybe less important?)   
(And also, there's some overlap with some yet-uncollapsed stuff going on 
in Valhalla that I'd like to steer clear of.)






More information about the core-libs-dev mailing list