public class

CaseInsensitiveMap

extends AbstractHashedMap
implements Serializable Cloneable
java.lang.Object
   ↳ java.util.AbstractMap<K, V>
     ↳ org.apache.commons.collections.map.AbstractHashedMap
       ↳ org.apache.commons.collections.map.CaseInsensitiveMap

Class Overview

A case-insensitive 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 synchronizedMap(Map). This class may throw exceptions when accessed by concurrent threads without synchronization.

Summary

[Expand]
Inherited Constants
From class org.apache.commons.collections.map.AbstractHashedMap
[Expand]
Inherited Fields
From class org.apache.commons.collections.map.AbstractHashedMap
Public Constructors
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.
Public Methods
Object clone()
Clones the map without cloning the keys or values.
Protected Methods
Object convertKey(Object key)
Overrides convertKey() from AbstractHashedMap to convert keys to lower case.
[Expand]
Inherited Methods
From class org.apache.commons.collections.map.AbstractHashedMap
From class java.util.AbstractMap
From class java.lang.Object
From interface java.util.Map
From interface org.apache.commons.collections.IterableMap

Public Constructors

public CaseInsensitiveMap ()

Constructs a new empty map with default size and load factor.

public CaseInsensitiveMap (int initialCapacity)

Constructs a new, empty map with the specified initial capacity.

Parameters
initialCapacity the initial capacity
Throws
IllegalArgumentException if the initial capacity is less than one

public CaseInsensitiveMap (int initialCapacity, float loadFactor)

Constructs a new, empty map with the specified initial capacity and load factor.

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

public CaseInsensitiveMap (Map map)

Constructor copying elements from another map.

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

Public Methods

public Object clone ()

Clones the map without cloning the keys or values.

Returns
  • a shallow clone

Protected Methods

protected Object convertKey (Object key)

Overrides convertKey() from AbstractHashedMap to convert keys to lower case.

Returns null if key is null.

Parameters
key the key convert
Returns
  • the converted key