[ 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