public class TagMap extends java.util.AbstractMap<java.lang.String,java.lang.String>
AbstractPrimitive.keys
.
It offers good performance for few keys.
It uses copy on write, so there cannot be a ConcurrentModificationException
while iterating through it.Modifier and Type | Class and Description |
---|---|
private static class |
TagMap.TagEntryInterator
An iterator that iterates over the tags in this map.
|
private static class |
TagMap.TagEntrySet
This is the entry set of this map.
|
Modifier and Type | Field and Description |
---|---|
private static java.lang.String[] |
EMPTY_TAGS
We use this array every time we want to represent an empty map.
|
private java.lang.String[] |
tags
The tags field.
|
Constructor and Description |
---|
TagMap()
Creates a new, empty tag map.
|
TagMap(java.lang.String[] tags)
Creates a new read only tag map using a key/value/key/value/...
|
Modifier and Type | Method and Description |
---|---|
void |
clear() |
boolean |
containsKey(java.lang.Object key) |
boolean |
containsValue(java.lang.Object value) |
java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.String>> |
entrySet() |
java.lang.String |
get(java.lang.Object key) |
(package private) java.lang.String[] |
getTagsArray()
Gets the backing tags array.
|
private static int |
indexOfKey(java.lang.String[] tags,
java.lang.Object key)
Finds a key in an array that is structured like the
tags array and returns the position. |
java.lang.String |
put(java.lang.String key,
java.lang.String value) |
java.lang.String |
remove(java.lang.Object key) |
int |
size() |
java.lang.String |
toString() |
clone, equals, hashCode, isEmpty, keySet, putAll, values
private static final java.lang.String[] EMPTY_TAGS
private volatile java.lang.String[] tags
public TagMap()
public TagMap(java.lang.String[] tags)
The array that is passed as parameter may not be modified after passing it to this map.
tags
- The tags array. It is not modified by this map.public java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.String>> entrySet()
entrySet
in interface java.util.Map<java.lang.String,java.lang.String>
entrySet
in class java.util.AbstractMap<java.lang.String,java.lang.String>
public boolean containsKey(java.lang.Object key)
containsKey
in interface java.util.Map<java.lang.String,java.lang.String>
containsKey
in class java.util.AbstractMap<java.lang.String,java.lang.String>
public java.lang.String get(java.lang.Object key)
get
in interface java.util.Map<java.lang.String,java.lang.String>
get
in class java.util.AbstractMap<java.lang.String,java.lang.String>
public boolean containsValue(java.lang.Object value)
containsValue
in interface java.util.Map<java.lang.String,java.lang.String>
containsValue
in class java.util.AbstractMap<java.lang.String,java.lang.String>
public java.lang.String put(java.lang.String key, java.lang.String value)
put
in interface java.util.Map<java.lang.String,java.lang.String>
put
in class java.util.AbstractMap<java.lang.String,java.lang.String>
public java.lang.String remove(java.lang.Object key)
remove
in interface java.util.Map<java.lang.String,java.lang.String>
remove
in class java.util.AbstractMap<java.lang.String,java.lang.String>
public void clear()
clear
in interface java.util.Map<java.lang.String,java.lang.String>
clear
in class java.util.AbstractMap<java.lang.String,java.lang.String>
public int size()
size
in interface java.util.Map<java.lang.String,java.lang.String>
size
in class java.util.AbstractMap<java.lang.String,java.lang.String>
private static int indexOfKey(java.lang.String[] tags, java.lang.Object key)
tags
array and returns the position.
We allow the parameter to be passed to allow for better synchronization.
tags
- The tags array to search through.key
- The key to search.public java.lang.String toString()
toString
in class java.util.AbstractMap<java.lang.String,java.lang.String>
java.lang.String[] getTagsArray()