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)