Class StringMap
- Direct Known Subclasses:
AsteriskHandler.AmiStringMap, MimeHeaders
StringMap class is a substitute for the Hashtable.
The StringMap has the following properties: - Maps case-insensitive string keys to string values.
- The case of the keys is preserved.
- Values may be
null. - Preserves the relative order of the data.
- The same key may appear multiple times in a single map.
- This map is implemented via a Vector, and as such, as the number of keys increases, the time required to search will go up.
- Version:
- 2.5
- Author:
- Colin Stevens (colin.stevens@sun.com)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidMaps the given case-insensitive key to the specified value in this StringMap.voidAppend another Stringmap onto this one.voidclear()Removes all the keys and values from this StringMap.elements()Returns an enumeration of the values in this StringMap.get(int index) Returns the value at the specified index.Performs the same job asget(String).Returns the value that the specified case-insensitive key maps to in this StringMap.Returns the value that the specified case-insensitive key maps to in this StringMap.getKey(int index) Returns the key at the specified index.booleanisEmpty()Tests if there are any elements in this StringMap.keys()Returns an enumeration of the keys in this StringMap.voidMaps the key at the given index to the specified value in this StringMap.Performs the same job asput(String, String).voidMaps the given case-insensitive key to the specified value in this StringMap.voidremove(int i) Performs the same job asremove(String).voidRemoves the given case-insensitive key and its corresponding value from this StringMap.intsize()Returns the number of elements in this StringMap.toString()Returns a string representation of thisStringMapin the form of a set of entries, enclosed in braces and separated by the characters ", ".
-
Constructor Details
-
StringMap
public StringMap()Creates an empty StringMap.
-
-
Method Details
-
size
public int size()Returns the number of elements in this StringMap. Every occurrence of keys that appear multiple times is counted.- Specified by:
sizein classDictionary- Returns:
- The number of elements in this StringMap.
- See Also:
-
isEmpty
public boolean isEmpty()Tests if there are any elements in this StringMap.- Specified by:
isEmptyin classDictionary- Returns:
- Returns
trueif there are no elements,falseotherwise.
-
keys
Returns an enumeration of the keys in this StringMap. The elements of the enumeration are strings.The same key may appear multiple times in the enumeration, not necessarily consecutively. Since
getalways returns the value associated with the first occurrence of a given key, a StringMap cannot be enumerated in the same fashion as a Hashtable. Instead, the caller should use:Enumeration keys = map.keys(); Enumeration values = map.elements(); while (keys.hasMoreElements()) { String key = (String) keys.nextElement(); String value = (String) values.nextElement(); }or:for (int i = 0; i < map.size(); i++) { String key = map.getKey(i); String value = map.get(i); }- Specified by:
keysin classDictionary- Returns:
- An enumeration of the keys.
- See Also:
-
elements
Returns an enumeration of the values in this StringMap. The elements of the enumeration are strings.- Specified by:
elementsin classDictionary- Returns:
- An enumeration of the values.
- See Also:
-
getKey
Returns the key at the specified index. The index ranges from0tosize() - 1.This method can be used to iterate over all the keys in this StringMap in the order in which they were inserted, subject to any intervening deletions.
- Parameters:
index- The index of the key.- Returns:
- The key at the specified index.
- Throws:
IndexOutOfBoundsException- if the index is out of the allowed range.
-
get
Returns the value at the specified index. The index ranges from0tosize() - 1.This method can be used to iterate over all the values in this StringMap in the order in which they were inserted, subject to any intervening deletions.
- Parameters:
index- The index of the key.- Returns:
- The value at the specified index.
- Throws:
IndexOutOfBoundsException- if the index is out of the allowed range.
-
get
Returns the value that the specified case-insensitive key maps to in this StringMap.The same key may appear multiple times in the enumeration; this method always returns the value associated with the first occurrence of the specified key. In order to get all the values, it is necessary to iterate over the entire StringMap to retrieve all the values associated with a given key.
- Parameters:
key- A key in this StringMap. May not benull.- Returns:
- The value to which the specified key is mapped, or
nullif the key is not in the StringMap. - See Also:
-
get
Returns the value that the specified case-insensitive key maps to in this StringMap.- Parameters:
key- A key in this StringMap. May not benull.dflt- A default value if the entry forkeyis not found.- Returns:
- The value to which the specified key is mapped, or
dfltif the key is not in the StringMap.
-
get
Performs the same job asget(String). It exists so this class can extend theDictionaryclass.- Specified by:
getin classDictionary- Parameters:
key- Must be a String.- Returns:
- A String value.
- Throws:
ClassCastException- if thekeyis not a String.- See Also:
-
put
Maps the key at the given index to the specified value in this StringMap. The index ranges from0tosize() - 1.- Parameters:
index- The index of the key.- Throws:
IndexOutOfBoundsException- if the index is out of the allowed range.
-
put
Maps the given case-insensitive key to the specified value in this StringMap.The value can be retrieved by calling
getwith a key that is case-insensitive equal to the given key.If this StringMap already contained a mapping for the given key, the old value is forgotten and the new specified value is used. The case of the prior key is retained in that case. Otherwise the case of the new key is used.
- Parameters:
key- The new key. May not benull.value- The new value. May benull.
-
put
Performs the same job asput(String, String). It exists so this class can extend theDictionaryclass.- Specified by:
putin classDictionary- Parameters:
key- Must be a String.value- Must be a String.- Returns:
- The previous value to which
keywas mapped, ornullif the the key did not map to any value. - Throws:
ClassCastException- if thekeyorvalueis not a String.- See Also:
-
add
Maps the given case-insensitive key to the specified value in this StringMap.The new mapping is added to this StringMap even if the given key already has a mapping. In this way it is possible to create a key that maps to two or more values.
Since the same key may appear multiple times in this StringMap, it is necessary to iterate over the entire StringMap to retrieve all values associated with a given key.
- Parameters:
key- The new key. May not benull.value- The new value. May benull.- See Also:
-
remove
Removes the given case-insensitive key and its corresponding value from this StringMap. This method does nothing if the key is not in this StringMap.The same key may appear in multiple times in this StringMap; this method only removes the first occurrence of the key.
- Parameters:
key- The key that needs to be removed. Must not benull.
-
remove
public void remove(int i) -
remove
Performs the same job asremove(String). It exists so this class can extend theDictionaryclass.- Specified by:
removein classDictionary- Parameters:
key- Must be a String.- Returns:
- The string value to which the key had been mapped, or
nullif the key did not have a mapping. - Throws:
ClassCastException- if thekeyis not a String.
-
clear
public void clear()Removes all the keys and values from this StringMap. -
append
Append another Stringmap onto this one.- Parameters:
other- the map to append to this onenoReplace- should existing values be replaced?
-
toString
Returns a string representation of thisStringMapin the form of a set of entries, enclosed in braces and separated by the characters ", ". Each entry is rendered as the key, an equals sign "=", and the associated value.
-