You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "John Mark (JIRA)" <ji...@apache.org> on 2017/05/19 14:24:04 UTC

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

John Mark created COLLECTIONS-602:
-------------------------------------

             Summary: 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


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)