Class TreeMultimap<K,V>

java.lang.Object
io.vavr.collection.AbstractMultimap<K,V,TreeMultimap<K,V>>
io.vavr.collection.TreeMultimap<K,V>
Type Parameters:
K - Key type
V - Value type
All Implemented Interfaces:
Foldable<Tuple2<K,V>>, Multimap<K,V>, Ordered<K>, SortedMultimap<K,V>, Traversable<Tuple2<K,V>>, Function1<K,Traversable<V>>, PartialFunction<K,Traversable<V>>, Value<Tuple2<K,V>>, Serializable, Iterable<Tuple2<K,V>>, Function<K,Traversable<V>>

public final class TreeMultimap<K,V> extends AbstractMultimap<K,V,TreeMultimap<K,V>> implements Serializable, SortedMultimap<K,V>
A TreeMap-based implementation of Multimap
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • withSeq

      public static <V> TreeMultimap.Builder<V> withSeq()
      Returns a builder for TreeMultimap instances where values are stored in a sequence. Values for each key will be stored in a Vavr List, allowing duplicates and preserving insertion order.
      Type Parameters:
      V - The value type
      Returns:
      A new Builder for creating TreeMultimap instances with sequence-based value storage
    • withSet

      public static <V> TreeMultimap.Builder<V> withSet()
      Returns a builder for TreeMultimap instances where values are stored in a set. Values for each key will be stored in a Vavr HashSet, eliminating duplicates.
      Type Parameters:
      V - The value type
      Returns:
      A new Builder for creating TreeMultimap instances with set-based value storage
    • withSortedSet

      public static <V extends Comparable<?>> TreeMultimap.Builder<V> withSortedSet()
      Returns a builder for TreeMultimap instances where values are stored in a sorted set. Values for each key will be stored in a Vavr TreeSet, eliminating duplicates and maintaining natural ordering.
      Type Parameters:
      V - The value type, must be Comparable
      Returns:
      A new Builder for creating TreeMultimap instances with sorted set-based value storage
    • withSortedSet

      public static <V> TreeMultimap.Builder<V> withSortedSet(Comparator<? super V> comparator)
      Returns a builder for TreeMultimap instances where values are stored in a sorted set with a custom comparator. Values for each key will be stored in a Vavr TreeSet, eliminating duplicates and maintaining order defined by the comparator.
      Type Parameters:
      V - The value type
      Parameters:
      comparator - The comparator to define the ordering of values
      Returns:
      A new Builder for creating TreeMultimap instances with sorted set-based value storage using the given comparator
    • narrow

      public static <K, V> TreeMultimap<K,V> narrow(TreeMultimap<? extends K,? extends V> map)
      Narrows a TreeMultimap<? extends K, ? extends V> to TreeMultimap<K, V> via a type-safe cast. Safe here because the multimap is immutable and no elements can be added that would violate the type (covariance)

      CAUTION: If K is narrowed, the underlying Comparator might fail!

      Type Parameters:
      K - the target key type
      V - the target value type
      Parameters:
      map - the multimap to narrow
      Returns:
      the same multimap viewed as TreeMultimap<K, V>
    • emptyMapSupplier

      protected <K2, V2> Map<K2,V2> emptyMapSupplier()
      Description copied from class: AbstractMultimap
      Returns an empty Map instance specific to the implementing class.
      Specified by:
      emptyMapSupplier in class AbstractMultimap<K,V,TreeMultimap<K,V>>
      Type Parameters:
      K2 - Key type of the empty map
      V2 - Value type of the empty map
      Returns:
      An empty Map instance
    • emptyInstance

      protected <K2, V2> TreeMultimap<K2,V2> emptyInstance()
      Description copied from class: AbstractMultimap
      Returns an empty Multimap instance specific to the implementing class.
      Specified by:
      emptyInstance in class AbstractMultimap<K,V,TreeMultimap<K,V>>
      Type Parameters:
      K2 - Key type of the empty multimap
      V2 - Value type of the empty multimap
      Returns:
      An empty Multimap instance
    • createFromMap

      protected <K2, V2> TreeMultimap<K2,V2> createFromMap(@NonNull Map<K2,Traversable<V2>> back)
      Description copied from class: AbstractMultimap
      Creates a new Multimap instance from the given backing map.
      Specified by:
      createFromMap in class AbstractMultimap<K,V,TreeMultimap<K,V>>
      Type Parameters:
      K2 - Key type of the new multimap
      V2 - Value type of the new multimap
      Parameters:
      back - The backing map to create the multimap from
      Returns:
      A new Multimap instance containing the entries from the backing map
    • comparator

      public Comparator<K> comparator()
      Description copied from interface: Ordered
      Returns the comparator that governs the ordering of elements in this collection. The returned comparator must be consistent with the collection's iteration order.
      Specified by:
      comparator in interface Ordered<K>
      Returns:
      the comparator defining the element order
    • keySet

      public SortedSet<K> keySet()
      Description copied from interface: Multimap
      Returns the keys contained in this multimap.
      Specified by:
      keySet in interface Multimap<K,V>
      Specified by:
      keySet in interface SortedMultimap<K,V>
      Overrides:
      keySet in class AbstractMultimap<K,V,TreeMultimap<K,V>>
      Returns:
      Set of the keys contained in this multimap.
    • toJavaMap

      public SortedMap<K,Collection<V>> toJavaMap()
      Description copied from interface: Multimap
      Converts this Vavr Map to a java.util.Map while preserving characteristics like insertion order (LinkedHashMultimap) and sort order (SortedMultimap).
      Specified by:
      toJavaMap in interface Multimap<K,V>
      Specified by:
      toJavaMap in interface SortedMultimap<K,V>
      Overrides:
      toJavaMap in class AbstractMultimap<K,V,TreeMultimap<K,V>>
      Returns:
      a new java.util.Map instance