Decorates another
SortedMap
to create objects in the map on demand.
When the {@link #get(Object)} method is called with a key that does notexist in the map, the factory is used to create the object. The created object will be added to the map using the requested key.
For instance:
Factory<Date> factory = new Factory<Date>() { public Date create() { return new Date(); } } SortedMap<String, Date> lazy = LazySortedMap.lazySortedMap(new HashMap<String, Date>(), factory); Date date = lazy.get("NOW");
After the above code is executed,
date
will refer to a new
Date
instance. Furthermore, that
Date
instance is mapped to the "NOW" key in the map.
Note that LazySortedMap is not synchronized and is not thread-safe. If you wish to use this map from multiple threads concurrently, you must use appropriate synchronization. The simplest approach is to wrap this map using {@link java.util.Collections#synchronizedSortedMap}. This class may throw exceptions when accessed by concurrent threads without synchronization.
This class is Serializable from Commons Collections 3.1.
@since 3.0
@version $Id: LazySortedMap.java 1479407 2013-05-05 22:07:53Z tn $