de.unkrig.commons.util.collections
Class LinearMap<K,V>

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by de.unkrig.commons.util.collections.LinearMap<K,V>
Type Parameters:
K - The type of the map keys
V - The type of the map values
All Implemented Interfaces:
java.util.Map<K,V>
Direct Known Subclasses:
IdentityLinearMap

public class LinearMap<K,V>
extends java.util.AbstractMap<K,V>

A Map that performs very well for a SMALL number of entries. null keys and null values are supported.


Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.AbstractMap
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Constructor Summary
LinearMap()
           
LinearMap(int initialCapacity)
           
 
Method Summary
 void clear()
           
 boolean containsKey(java.lang.Object key)
           
 boolean containsValue(java.lang.Object value)
           
 java.util.Set<java.util.Map.Entry<K,V>> entrySet()
           
 V get(java.lang.Object key)
           
 boolean isEmpty()
           
protected  boolean keysEqual(java.lang.Object key1, java.lang.Object key2)
           
 V put(K key, V value)
           
 V remove(java.lang.Object key)
           
 int size()
           
protected  boolean valuesEqual(java.lang.Object value1, java.lang.Object value2)
           
 
Methods inherited from class java.util.AbstractMap
clone, equals, hashCode, keySet, putAll, toString, values
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LinearMap

public LinearMap()

LinearMap

public LinearMap(int initialCapacity)
Method Detail

size

public int size()
Specified by:
size in interface java.util.Map<K,V>
Overrides:
size in class java.util.AbstractMap<K,V>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Map<K,V>
Overrides:
isEmpty in class java.util.AbstractMap<K,V>

containsKey

public boolean containsKey(@Nullable
                           java.lang.Object key)
Specified by:
containsKey in interface java.util.Map<K,V>
Overrides:
containsKey in class java.util.AbstractMap<K,V>

containsValue

public boolean containsValue(@Nullable
                             java.lang.Object value)
Specified by:
containsValue in interface java.util.Map<K,V>
Overrides:
containsValue in class java.util.AbstractMap<K,V>

get

@Nullable
public V get(@Nullable
                      java.lang.Object key)
Specified by:
get in interface java.util.Map<K,V>
Overrides:
get in class java.util.AbstractMap<K,V>

put

@Nullable
public V put(@Nullable
                      K key,
                      @Nullable
                      V value)
Specified by:
put in interface java.util.Map<K,V>
Overrides:
put in class java.util.AbstractMap<K,V>

remove

@Nullable
public V remove(@Nullable
                         java.lang.Object key)
Specified by:
remove in interface java.util.Map<K,V>
Overrides:
remove in class java.util.AbstractMap<K,V>

clear

public void clear()
Specified by:
clear in interface java.util.Map<K,V>
Overrides:
clear in class java.util.AbstractMap<K,V>

entrySet

public java.util.Set<java.util.Map.Entry<K,V>> entrySet()
Specified by:
entrySet in interface java.util.Map<K,V>
Specified by:
entrySet in class java.util.AbstractMap<K,V>

keysEqual

protected boolean keysEqual(@Nullable
                            java.lang.Object key1,
                            @Nullable
                            java.lang.Object key2)
Returns:
Whether the two keys are equal in the sense of this map; can be overridden e.g. for an 'identity map'
See Also:
IdentityHashMap

valuesEqual

protected boolean valuesEqual(@Nullable
                              java.lang.Object value1,
                              @Nullable
                              java.lang.Object value2)
Returns:
Whether the two values are equal in the sense of this map