[jira] [Commented] (COLLECTIONS-602) Improve efficiency of DefaultedMap.get

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (COLLECTIONS-602) Improve efficiency of DefaultedMap.get

JIRA jira@apache.org

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

Bruno P. Kinoshita commented on COLLECTIONS-602:
------------------------------------------------

Sounds like a good argument [~jmark]. Would you be interested in submitting a pull request? :-)

> Improve efficiency of DefaultedMap.get
> --------------------------------------
>
>                 Key: COLLECTIONS-602
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-602
>             Project: Commons Collections
>          Issue Type: Bug
>            Reporter: John Mark
>              Labels: help-wanted
>
> The current implementation of {{org.apache.commons.collections4.map.DefaultedMap.get()}} is inefficient since it always require two map lookups. There is no need to check map.containsKey() every time. I would suggest implementing this method similar to the way that Java 8 does with {{Map.getOrDefault()}}. My proposed implementation would be something like this:
> {code}
> public V get(final Object key) {
>     V v;
>     return ((v = map.get(key) != null) || map.containsKey(key)) ? v : value.transform((K) key);
> }
> {code}
> It can be further optimized to not even call map.containsKey() if map is known to not contain null values.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)