Interface TypeSafeMultiMap

All Superinterfaces:
Iterable<Map.Entry<Key<?>,Collection<?>>>

public interface TypeSafeMultiMap extends Iterable<Map.Entry<Key<?>,Collection<?>>>
A map that is type safe, i.e. the pairs (key, value) are type-checked, and can contain multiple values, i.e. it's associated to collections (key, collection of values). It's immutable.
Author:
Fabrizio Giudici
  • Method Details

    • get

      @Nonnull <T> Collection<T> get(@Nonnull Key<T> key)
      Returns a value given its key.
      Type Parameters:
      T - the type
      Parameters:
      key - the key
      Returns:
      the value as a Collection
    • containsKey

      boolean containsKey(@Nonnull Key<?> key)
      Checks whether a pair has been stored.
      Parameters:
      key - the key
      Returns:
      true if the pair is present
    • keySet

      @Nonnull Set<Key<?>> keySet()
      Returns a set of all the contained keys.
      Returns:
      the keys as a mutable set
    • values

      @Nonnull Collection<Collection<?>> values()
      Returns a set of all the contained values.
      Returns:
      the values as a mutable collection
      Since:
      3.2-ALPHA-6
    • entrySet

      @Nonnull Set<Map.Entry<Key<?>,Collection<?>>> entrySet()
      Returns a set of all the contained (key, value) pairs.
      Returns:
      the pairs as a mutable collection
      Since:
      3.2-ALPHA-6
    • size

      @Nonnegative int size()
      Returns the size of this map.
      Returns:
      the size
    • forEach

      void forEach(@Nonnull BiConsumer<? super Key<?>,? super Collection<?>> action)
      Performs the given action on all the pairs (key, value) contained in this map.
      Parameters:
      action - the action
      Since:
      3.2-ALPHA-10
    • asMap

      @Nonnull Map<Key<?>,Collection<?>> asMap()
      Returns the contents as a plain Map.
      Returns:
      the contents as a mutable map
    • with

      @Nonnull <T> TypeSafeMultiMap with(@Nonnull Key<T> key, @Nonnull T value)
      Creates a new instance with an additional pair (key, value).
      Type Parameters:
      T - the type
      Parameters:
      key - the key
      value - the value
      Returns:
      the new instance
      Since:
      3.2-ALPHA-2
    • ofCloned

      @Nonnull static TypeSafeMultiMap ofCloned(@Nonnull Map<? extends Key<?>,? extends Collection<?>> map)
      Creates an instance cloning the given map.
      Parameters:
      map - the map to clone
      Returns:
      the new instance
      Since:
      3.2-ALPHA-2
    • newInstance

      @Nonnull static TypeSafeMultiMap newInstance()
      Creates a new empty instance.
      Returns:
      the new instance
      Since:
      3.2-ALPHA-2