Package com.groiss.ds

Class MultiMap<K,V>

java.lang.Object
com.groiss.ds.MultiMap<K,V>
All Implemented Interfaces:
Serializable

public class MultiMap<K,V> extends Object implements Serializable
A MultiMap maps keys to objects, where one key can be mapped to a list of objects. By default the MultiMap is not threadsafe there are two constructors where you can specify the concurrency settings MultiMap(boolean), MultiMap(boolean, int, int). If nothing is specified, the multimap has an default initial capacity of 16 and an default subVectorSize of 16
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs an empty, not threadsafe MultiMap with default initialcapacity (16) and default subVectorSize (16)
    MultiMap(boolean threadSafe)
    Constructs an empty MultiMap
    MultiMap(boolean threadSafe, int capacity, int initialVectorSize)
    Constructs an empty MultiMap with the given settings
    MultiMap(int initialSubSize)
    Constructs a MultiMap and specifies an initial size for the Vectors holding the values to the keys.
    MultiMap(int capacity, int initialSubSize)
    Creates a new MultiMap with the defined capacity and Vector size.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Removes all mappings from this map
    boolean
    Returns true if this map contains a mapping for the specified key.
    boolean
    Returns true if this map maps one or more keys to the specified value.
    int
    Returns number of values mapped to a given key.
    Returns the elements in the map
    Returns a set view of the mappings contained in this map.
    Returns all values mapped to a given key, or null
    get(Object key)
    Returns the values to which this map maps the specified key or null if there's no mapping
    Deprecated.
    since 8.0; use get(Object) instead
    returns a list containing all entries, mapped to the given key; if no value is mapped to this key, an empty list is returned
    boolean
    hasValue(Object key, Object value)
    Finds out if the object key has a mapping to the object value.
    boolean
    Returns true if this map contains no key-value mappings.
    Deprecated.
    since 8.0; use keySet() instead
    Returns a set view of the keys contained in this map.
    void
    put(K key, V value)
    Put the mapping of a key and an object to the map.
    void
    putAll(Map<? extends K,? extends List<V>> t)
    Copies all of the mappings from the specified map to this map
    void
    putAll(K key, Collection<? extends V> values)
    Adds all the values to the given key
    void
    putIfAbsent(K key, V value)
    Put the mapping of a key and an object to the map.
    Removes the mapping for this key from this map if it is present
    boolean
    remove(Object key, Object value)
    Removes the value for a certain key.
    int
     
     
    Returns a collection view of the values contained in this map.
    Return all values in this map as a single flattened set.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • MultiMap

      public MultiMap()
      Constructs an empty, not threadsafe MultiMap with default initialcapacity (16) and default subVectorSize (16)
    • MultiMap

      public MultiMap(boolean threadSafe)
      Constructs an empty MultiMap
      Parameters:
      threadSafe - whether the map is threadsafe or not
    • MultiMap

      public MultiMap(boolean threadSafe, int capacity, int initialVectorSize)
      Constructs an empty MultiMap with the given settings
      Parameters:
      threadSafe -
      capacity - capacity of the map
      initialVectorSize - capacity of the created collections to store the values
    • MultiMap

      public MultiMap(int initialSubSize)
      Constructs a MultiMap and specifies an initial size for the Vectors holding the values to the keys. Every new Vector will be created with this initial size. If you use the other constructor, the initial size will have a default value of 16.
      Parameters:
      initialSubSize - New Vectors will be created with this size.
    • MultiMap

      public MultiMap(int capacity, int initialSubSize)
      Creates a new MultiMap with the defined capacity and Vector size.
      Parameters:
      capacity - The Map will have this initial size. The load factor is the standard value of 0.75.
      initialSubSize - New Vectors will be created with this size.
  • Method Details

    • clear

      public void clear()
      Removes all mappings from this map
    • containsKey

      public boolean containsKey(Object key)
      Returns true if this map contains a mapping for the specified key. More formally, returns true if and only if this map contains a mapping for a key k such that (key==null ? k==null : key.equals(k)).
      Parameters:
      key - key whose presence in this map is to be tested.
      Returns:
      true if this map contains a mapping for the specified key.
    • containsValue

      public boolean containsValue(Object value)
      Returns true if this map maps one or more keys to the specified value. More formally, returns true if and only if this map contains at least one mapping to a value v such that (value==null ? v==null : value.equals(v)).
      Parameters:
      value - value whose presence in this map is to be tested.
      Returns:
      true if this map maps one or more keys to the specified value.
    • count

      public int count(Object key)
      Returns number of values mapped to a given key.
      Parameters:
      key - the key object
      Returns:
      the number of objects stored with this key.
    • elements

      public Enumeration<List<V>> elements()
      Returns the elements in the map
      Returns:
      an enumeration containung vectors of elements mapped to the keys
    • enumeration

      public Enumeration<V> enumeration(Object key)
      Returns all values mapped to a given key, or null
      Parameters:
      key - the key object
      Returns:
      the values enumeration
    • entrySet

      public Set<Map.Entry<K,List<V>>> entrySet()
      Returns a set view of the mappings contained in this map. Each element in the returned set is a Map.Entry. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa.
      Returns:
      a set view of the mappings contained in this map.
    • get

      public List<V> get(Object key)
      Returns the values to which this map maps the specified key or null if there's no mapping
      Parameters:
      key - key whose associated value is to be returned.
      Returns:
      the values to which this map maps the specified key, or null if the map contains no mapping for this key.
      See Also:
    • getEntries

      @Deprecated public List<V> getEntries(Object key)
      Deprecated.
      since 8.0; use get(Object) instead
      See Also:
    • getEntryList

      public List<V> getEntryList(Object key)
      returns a list containing all entries, mapped to the given key; if no value is mapped to this key, an empty list is returned
      Parameters:
      key - the key
      Returns:
      list of values mapped to the key, or an empty list
    • hasValue

      public boolean hasValue(Object key, Object value)
      Finds out if the object key has a mapping to the object value.
      Parameters:
      key - The key object.
      value - The desired value object.
      Returns:
      true if the key object contains a mapping to the given value object. In all other cases (also if the key doesn't exist at all), false will be returned.
    • isEmpty

      public boolean isEmpty()
      Returns true if this map contains no key-value mappings.
      Returns:
      true if this map contains no key-value mappings.
    • keys

      @Deprecated public Enumeration<K> keys()
      Deprecated.
      since 8.0; use keySet() instead
      Return the keys
      Returns:
      an Enumeration containing the keys.
    • keySet

      public Set<K> keySet()
      Returns a set view of the keys contained in this map. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa.
      Returns:
      a set view of the keys contained in this map.
    • put

      public void put(K key, V value)
      Put the mapping of a key and an object to the map. If a mapping (list l) with this key is already present we put the value to end l.
      Parameters:
      key - a key
      value - the value object.
    • putIfAbsent

      public void putIfAbsent(K key, V value)
      Put the mapping of a key and an object to the map. If the mapping (list l) with this key already contains the object, nothing is done.
      Parameters:
      key - a key
      value - the value object.
    • putAll

      public void putAll(K key, Collection<? extends V> values)
      Adds all the values to the given key
      Parameters:
      key - the key to which the values should be added
      values - the values
    • putAll

      public void putAll(Map<? extends K,? extends List<V>> t)
      Copies all of the mappings from the specified map to this map
      Parameters:
      t - Mappings to be stored in this map.
    • remove

      public List<V> remove(Object key)
      Removes the mapping for this key from this map if it is present
      Parameters:
      key - key whose mapping is to be removed from the map.
      Returns:
      previous value associated with specified key, or null if there was no mapping for key.
    • remove

      public boolean remove(Object key, Object value)
      Removes the value for a certain key.
      Parameters:
      key - the key object
      value - the value for the key
    • size

      public int size()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • values

      public Collection<List<V>> values()
      Returns a collection view of the values contained in this map. The collection is backed by the map, so changes to the map are reflected in the collection, and vice-versa.
      Returns:
      a collection view of the values contained in this map.
    • valueSet

      public Set<V> valueSet()
      Return all values in this map as a single flattened set.
      Returns:
      the set of values in this map (flattened)