commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MATH-786) "hashCode" in "Pair" class
Date Sat, 05 May 2012 22:35:50 GMT

    [ https://issues.apache.org/jira/browse/MATH-786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13269075#comment-13269075
] 

Gilles commented on MATH-786:
-----------------------------

OK.

Then assuming that it's the user's responsibility to not mutate the passed references, it
seems reasonable to _optionally_ allow the performance gain of computing the hash code at
construction, by having a flag in the constructor's parameter list:
{noformat}
public Pair(K k, V v, boolean assumeImmutable) {
    key = k;
    value = v;
    immutable = assumeImmutable;
    hashCode = computeHashCode();
}
{noformat}

Then, we'd have:
{noformat}
public int hashCode() {
    return immutable ? hashCode : computeHashCode();
}
{noformat}

What do you think?

                
> "hashCode" in "Pair" class
> --------------------------
>
>                 Key: MATH-786
>                 URL: https://issues.apache.org/jira/browse/MATH-786
>             Project: Commons Math
>          Issue Type: Improvement
>    Affects Versions: 3.0
>            Reporter: Gilles
>            Assignee: Gilles
>            Priority: Trivial
>             Fix For: 3.1
>
>
> Since "Pair" is supposed to be an immutable class, couldn't we cache the "hashCode" value
at construction? That would supposedly make it more efficient when used in maps.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message