On Sun, 3 Aug 2025 13:42:41 GMT, Tagir F. Valeev <tval...@openjdk.org> wrote:
>> Implementation of Comparator.min and Comparator.max methods. Preliminary >> discussion is in this thread: >> https://mail.openjdk.org/pipermail/core-libs-dev/2025-May/145638.html >> The specification is mostly composed of Math.min/max and Collections.min/max >> specifications. >> >> The methods are quite trivial, so I don't think we need more extensive >> testing (e.g., using different comparators). But if you have ideas of new >> useful tests, I'll gladly add them. >> >> I'm not sure whether we should specify exactly the behavior in case if the >> comparator returns 0. I feel that it could be a useful invariant that >> `Comparator.min(a, b)` and `Comparator.max(a, b)` always return different >> argument, partitioning the set of {a, b} objects (even if they are equal). >> But I'm open to suggestions here. > > Tagir F. Valeev has updated the pull request incrementally with one > additional commit since the last revision: > > Add @implSpec Maybe we can add some verbiage around why the first argument is returned if the values are equal? This relates to stable sorting algorithms and `min` and `max` can be viewed as a sorting algorithm with only two elements. So, min and max are stable in this sense and therefore amenable as a building block for more general stable sorting algorithms. ------------- PR Comment: https://git.openjdk.org/jdk/pull/25297#issuecomment-3164837186