org.apache.commons.collections.map
public class CaseInsensitiveMap extends AbstractHashedMap implements Serializable, Cloneable
Map
.
As entries are added to the map, keys are converted to all lowercase. A new
key is compared to existing keys by comparing newKey.toString().toLower()
to the lowercase values in the current KeySet.
Null keys are supported.
The keySet()
method returns all lowercase keys, or nulls.
Example:
Map map = new CaseInsensitiveMap();
map.put("One", "One");
map.put("Two", "Two");
map.put(null, "Three");
map.put("one", "Four");
creates a CaseInsensitiveMap
with three entries.map.get(null)
returns "Three"
and map.get("ONE")
returns "Four".
The Set
returned by keySet()
equals {"one", "two", null}.
Note that CaseInsensitiveMap 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 java.util.Collections#synchronizedMap(Map). This class may throw exceptions when accessed by concurrent threads without synchronization.
Since: Commons Collections 3.0
Version: $Revision: 348007 $ $Date: 2005-11-21 22:52:57 +0000 (Mon, 21 Nov 2005) $
Constructor Summary | |
---|---|
CaseInsensitiveMap()
Constructs a new empty map with default size and load factor. | |
CaseInsensitiveMap(int initialCapacity)
Constructs a new, empty map with the specified initial capacity.
| |
CaseInsensitiveMap(int initialCapacity, float loadFactor)
Constructs a new, empty map with the specified initial capacity and
load factor.
| |
CaseInsensitiveMap(Map map)
Constructor copying elements from another map.
|
Method Summary | |
---|---|
Object | clone()
Clones the map without cloning the keys or values.
|
protected Object | convertKey(Object key)
Overrides convertKey() from AbstractHashedMap to convert keys to
lower case.
|
Parameters: initialCapacity the initial capacity
Throws: IllegalArgumentException if the initial capacity is less than one
Parameters: initialCapacity the initial capacity loadFactor the load factor
Throws: IllegalArgumentException if the initial capacity is less than one IllegalArgumentException if the load factor is less than zero
Keys will be converted to lower case strings, which may cause some entries to be removed (if string representation of keys differ only by character case).
Parameters: map the map to copy
Throws: NullPointerException if the map is null
Returns: a shallow clone
Returns null if key is null.
Parameters: key the key convert
Returns: the converted key