Class ArrayListValuedLinkedHashMap<K,V>

Type Parameters:
K - the type of the keys in this map
V - the type of the values in this map
All Implemented Interfaces:
Serializable, ListValuedMap<K,V>, MultiValuedMap<K,V>

public class ArrayListValuedLinkedHashMap<K,V> extends AbstractListValuedMap<K,V> implements Serializable
Implements a ListValuedMap, using a LinkedHashMap to provide data storage and ArrayLists as value collections. This is the standard implementation of a ListValuedMap.

Note that ArrayListValuedLinkedHashMap is not synchronized and is not thread-safe. If you wish to use this map from multiple threads concurrently, you must use appropriate synchronization. This class may throw exceptions when accessed by concurrent threads without synchronization.

Since:
4.5.0-M3
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization Version
      See Also:
    • DEFAULT_INITIAL_MAP_CAPACITY

      private static final int DEFAULT_INITIAL_MAP_CAPACITY
      The initial map capacity used when none specified in constructor.
      See Also:
    • DEFAULT_INITIAL_LIST_CAPACITY

      private static final int DEFAULT_INITIAL_LIST_CAPACITY
      The initial list capacity when using none specified in constructor.
      See Also:
    • initialListCapacity

      private final int initialListCapacity
      The initial list capacity when creating a new value collection.
  • Constructor Details

    • ArrayListValuedLinkedHashMap

      public ArrayListValuedLinkedHashMap()
      Creates an empty ArrayListValuedHashMap with the default initial map capacity (16) and the default initial list capacity (3).
    • ArrayListValuedLinkedHashMap

      public ArrayListValuedLinkedHashMap(int initialListCapacity)
      Creates an empty ArrayListValuedHashMap with the default initial map capacity (16) and the specified initial list capacity.
      Parameters:
      initialListCapacity - the initial capacity used for value collections
    • ArrayListValuedLinkedHashMap

      public ArrayListValuedLinkedHashMap(int initialMapCapacity, int initialListCapacity)
      Creates an empty ArrayListValuedHashMap with the specified initial map and list capacities.
      Parameters:
      initialMapCapacity - the initial hashmap capacity
      initialListCapacity - the initial capacity used for value collections
    • ArrayListValuedLinkedHashMap

      public ArrayListValuedLinkedHashMap(Map<? extends K,? extends V> map)
      Creates an ArrayListValuedHashMap copying all the mappings of the given map.
      Parameters:
      map - a Map to copy into this map
    • ArrayListValuedLinkedHashMap

      public ArrayListValuedLinkedHashMap(MultiValuedMap<? extends K,? extends V> map)
      Creates an ArrayListValuedHashMap copying all the mappings of the given map.
      Parameters:
      map - a MultiValuedMap to copy into this map
  • Method Details

    • createCollection

      protected ArrayList<V> createCollection()
      Description copied from class: AbstractListValuedMap
      Creates a new value collection using the provided factory.
      Specified by:
      createCollection in class AbstractListValuedMap<K,V>
      Returns:
      a new list
    • readObject

      private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
      Deserializes an instance from an ObjectInputStream.
      Parameters:
      in - The source ObjectInputStream.
      Throws:
      IOException - Any of the usual Input/Output related exceptions.
      ClassNotFoundException - A class of a serialized object cannot be found.
    • trimToSize

      public void trimToSize()
      Trims the capacity of all value collections to their current size.
    • writeObject

      private void writeObject(ObjectOutputStream out) throws IOException
      Serializes this object to an ObjectOutputStream.
      Parameters:
      out - the target ObjectOutputStream.
      Throws:
      IOException - thrown when an I/O errors occur writing to the target stream.