Class SmallMap<K,V>

java.lang.Object
org.apache.pdfbox.util.SmallMap<K,V>
All Implemented Interfaces:
Map<K,V>

public class SmallMap<K,V> extends Object implements Map<K,V>
Map implementation with a smallest possible memory usage. It should only be used for maps with small number of items (e.g. <30) since most operations have an O(n) complexity. Thus it should be used in cases with large number of map objects, each having only few items.

null is not supported for keys or values.

  • Field Details

    • mapArr

      private Object[] mapArr
      stores key-value pair as 2 objects; key first; in case of empty map this might be null
  • Constructor Details

    • SmallMap

      public SmallMap()
      Creates empty map.
    • SmallMap

      public SmallMap(Map<? extends K,? extends V> initMap)
      Creates map filled with entries from provided map.
  • Method Details

    • findKey

      private int findKey(Object key)
      Returns index of key within map-array or -1 if key is not found (or key is null).
    • findValue

      private int findValue(Object value)
      Returns index of value within map-array or -1 if value is not found (or value is null).
    • size

      public int size()
      Specified by:
      size in interface Map<K,V>
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface Map<K,V>
    • containsKey

      public boolean containsKey(Object key)
      Specified by:
      containsKey in interface Map<K,V>
    • containsValue

      public boolean containsValue(Object value)
      Specified by:
      containsValue in interface Map<K,V>
    • get

      public V get(Object key)
      Specified by:
      get in interface Map<K,V>
    • put

      public V put(K key, V value)
      Specified by:
      put in interface Map<K,V>
    • remove

      public V remove(Object key)
      Specified by:
      remove in interface Map<K,V>
    • putAll

      public final void putAll(Map<? extends K,? extends V> otherMap)
      Specified by:
      putAll in interface Map<K,V>
    • clear

      public void clear()
      Specified by:
      clear in interface Map<K,V>
    • keySet

      public Set<K> keySet()
      Returns a set view of the keys contained in this map.

      The current implementation does not allow changes to the returned key set (which would have to be reflected in the underlying map.

      Specified by:
      keySet in interface Map<K,V>
    • values

      public Collection<V> values()
      Returns a collection of the values contained in this map.

      The current implementation does not allow changes to the returned collection (which would have to be reflected in the underlying map.

      Specified by:
      values in interface Map<K,V>
    • entrySet

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