[
https://issues.apache.org/jira/browse/COLLECTIONS-602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16019576#comment-16019576
]
John Mark commented on COLLECTIONS-602:
---------------------------------------
Yes, that is what I was looking for, thanks.
I am attaching a patch to this ticket.
> 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
> Attachments: COLLECTIONS-602.patch
>
>
> 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)