RFR 8141409 Arrays.equals accepting a Comparator

Roger Riggs Roger.Riggs at Oracle.com
Thu Nov 12 16:42:28 UTC 2015

Hi Paul,

- A minor point but in the argument names, its a bit inconsistent 
between using 'b' and 'a2'.
I would have use 'a', and 'b' to be more consistent.  (and yes the 
current methods show the same inconsistency)

- The @return(s) should have an 'otherwise {@code false};  otherwise 
maybe it is allowed to return true.

- In the implementation, I generally prefer the form of 
Objects.requireNonNull(o, "name") so the exception
identifies the offending argument.

- I thought the coding style has spaces around operators (like ==).

- The non-range checked version of equals should have the same behavior as:
    equals(a, 0, a.length, a2, 0, a2.length).

The range checked version should include the sentence:

"Also, two array references are  considered equal if both are {@code null}."

- The implementation will need to check for nulls before the rangeChecks.

Regards, Roger

On 11/12/2015 5:36 AM, Paul Sandoz wrote:
> Hi,
> I have made a retreat on this just to add the two missing equals methods:
>    http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8141409-Arrays-equals-comparator/webrev/ <http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8141409-Arrays-equals-comparator/webrev/>
> I propose to revisit the overall null-handling semantics, especially for Comparable[] accepting methods, at a later date.
> Paul.
>> On 4 Nov 2015, at 15:32, Paul Sandoz <Paul.Sandoz at oracle.com> wrote:
>> Hi,
>> Please review:
>>   http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8141409-Arrays-equals-comparator/webrev/ <http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8141409-Arrays-equals-comparator/webrev/>
>>   https://bugs.openjdk.java.net/browse/JDK-8141409 <https://bugs.openjdk.java.net/browse/JDK-8141409>
>> This builds on (the already reviewed):
>>   https://bugs.openjdk.java.net/browse/JDK-8033148 <https://bugs.openjdk.java.net/browse/JDK-8033148>
>>   http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8033148-Arrays-lexico-compare/webrev/ <http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8033148-Arrays-lexico-compare/webrev/>
>> and adds yet more methods to Arrays, only two this time though, to fill out the missing gaps related to array equality with a comparator.
>> In addition i added an Objects.compare method, which simplifies the implementations of some object-bearing methods.
>> Both additions simplify the specification some object-bearing methods.
>> Paul.

More information about the core-libs-dev mailing list