Class TreeMultimap<K,V>
- Type Parameters:
K- Key typeV- 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>
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classBuilder class for creating TreeMultimap instances.Nested classes/interfaces inherited from class AbstractMultimap
AbstractMultimap.SerializableSupplier<T>Nested classes/interfaces inherited from interface Multimap
Multimap.ContainerType -
Field Summary
FieldsFields inherited from class AbstractMultimap
back, emptyContainer -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateTreeMultimap(Map<K, Traversable<V>> back, Multimap.ContainerType containerType, AbstractMultimap.SerializableSupplier<Traversable<?>> emptyContainer) -
Method Summary
Modifier and TypeMethodDescriptionReturns the comparator that governs the ordering of elements in this collection.protected <K2,V2> TreeMultimap <K2, V2> createFromMap(@NonNull Map<K2, Traversable<V2>> back) Creates a new Multimap instance from the given backing map.protected <K2,V2> TreeMultimap <K2, V2> Returns an empty Multimap instance specific to the implementing class.protected <K2,V2> Map <K2, V2> Returns an empty Map instance specific to the implementing class.keySet()Returns the keys contained in this multimap.static <K,V> TreeMultimap <K, V> narrow(TreeMultimap<? extends K, ? extends V> map) Narrows aTreeMultimap<? extends K, ? extends V>toTreeMultimap<K, V>via a type-safe cast.SortedMap<K, Collection<V>> Converts this VavrMapto ajava.util.Mapwhile preserving characteristics like insertion order (LinkedHashMultimap) and sort order (SortedMultimap).static <V> TreeMultimap.Builder<V> withSeq()Returns a builder for TreeMultimap instances where values are stored in a sequence.static <V> TreeMultimap.Builder<V> withSet()Returns a builder for TreeMultimap instances where values are stored in a set.static <V extends Comparable<?>>
TreeMultimap.Builder<V> Returns a builder for TreeMultimap instances where values are stored in a sorted set.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.Methods inherited from class AbstractMultimap
asMap, bimap, containsKey, distinct, distinctBy, distinctBy, drop, dropRight, dropUntil, dropWhile, equals, filter, filter, filterKeys, filterValues, flatMap, get, getContainerType, getOrElse, groupBy, grouped, hashCode, head, init, initOption, isAsync, isEmpty, isLazy, iterator, last, map, mapValues, merge, merge, orElse, orElse, partition, peek, put, put, reject, reject, rejectKeys, rejectValues, remove, remove, removeAll, removeAll, removeKeys, removeValues, replace, replace, replaceAll, replaceAll, replaceValue, retainAll, scan, size, slideBy, sliding, sliding, span, stringPrefix, tail, tailOption, take, takeRight, takeUntil, takeWhile, toJavaMap, toString, valuesMethods inherited from interface Foldable
fold, reduce, reduceOptionMethods inherited from interface Function1
andThen, arity, compose, compose1, curried, isMemoized, memoized, partial, reversed, tupledMethods inherited from interface Multimap
apply, asMap, asPartialFunction, bimap, collect, contains, containsKey, containsValue, flatMap, flatMap, foldRight, forEach, get, getContainerType, getOrElse, hasDefiniteSize, isDefinedAt, isDistinct, isTraversableAgain, iterator, iterator, length, map, map, mapTo, mapToVoid, mapValues, scanLeft, scanRight, size, transform, unzip, unzip, unzip3, unzip3, values, zip, zipAll, zipWith, zipWithIndex, zipWithIndexMethods inherited from interface PartialFunction
liftMethods inherited from interface SortedMultimap
distinct, distinctBy, distinctBy, drop, dropRight, dropUntil, dropWhile, filter, filter, filterKeys, filterValues, groupBy, grouped, init, initOption, merge, merge, orElse, orElse, partition, peek, put, put, reject, reject, rejectKeys, rejectValues, remove, remove, removeAll, removeAll, removeKeys, removeValues, replace, replace, replaceAll, replaceAll, replaceValue, retainAll, scan, slideBy, sliding, sliding, span, tail, tailOption, take, takeRight, takeUntil, takeWhileMethods inherited from interface Traversable
arrangeBy, average, containsAll, count, equals, existsUnique, find, findLast, foldLeft, forEachWithIndex, get, hashCode, head, headOption, isEmpty, isOrdered, isSequential, isSingleValued, last, lastOption, max, maxBy, maxBy, min, minBy, minBy, mkCharSeq, mkCharSeq, mkCharSeq, mkString, mkString, mkString, nonEmpty, product, reduceLeft, reduceLeftOption, reduceRight, reduceRightOption, single, singleOption, spliterator, sumMethods inherited from interface Value
collect, collect, corresponds, eq, exists, forAll, forEach, getOrElse, getOrElse, getOrElseThrow, getOrElseTry, getOrNull, isAsync, isLazy, out, out, stderr, stdout, stringPrefix, toArray, toCharSeq, toCompletableFuture, toEither, toEither, toInvalid, toInvalid, toJavaArray, toJavaArray, toJavaArray, toJavaCollection, toJavaList, toJavaList, toJavaMap, toJavaMap, toJavaMap, toJavaOptional, toJavaParallelStream, toJavaSet, toJavaSet, toJavaStream, toLeft, toLeft, toLinkedMap, toLinkedMap, toLinkedSet, toList, toMap, toMap, toOption, toPriorityQueue, toPriorityQueue, toQueue, toRight, toRight, toSet, toSortedMap, toSortedMap, toSortedMap, toSortedMap, toSortedSet, toSortedSet, toStream, toString, toTree, toTree, toTry, toTry, toValid, toValid, toValidation, toValidation, toVector
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
-
Constructor Details
-
TreeMultimap
private TreeMultimap(Map<K, Traversable<V>> back, Multimap.ContainerType containerType, AbstractMultimap.SerializableSupplier<Traversable<?>> emptyContainer)
-
-
Method Details
-
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
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
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
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
Narrows aTreeMultimap<? extends K, ? extends V>toTreeMultimap<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
Kis narrowed, the underlyingComparatormight fail!- Type Parameters:
K- the target key typeV- the target value type- Parameters:
map- the multimap to narrow- Returns:
- the same multimap viewed as
TreeMultimap<K, V>
-
emptyMapSupplier
Description copied from class:AbstractMultimapReturns an empty Map instance specific to the implementing class.- Specified by:
emptyMapSupplierin classAbstractMultimap<K, V, TreeMultimap<K,V>> - Type Parameters:
K2- Key type of the empty mapV2- Value type of the empty map- Returns:
- An empty Map instance
-
emptyInstance
Description copied from class:AbstractMultimapReturns an empty Multimap instance specific to the implementing class.- Specified by:
emptyInstancein classAbstractMultimap<K, V, TreeMultimap<K,V>> - Type Parameters:
K2- Key type of the empty multimapV2- Value type of the empty multimap- Returns:
- An empty Multimap instance
-
createFromMap
Description copied from class:AbstractMultimapCreates a new Multimap instance from the given backing map.- Specified by:
createFromMapin classAbstractMultimap<K, V, TreeMultimap<K,V>> - Type Parameters:
K2- Key type of the new multimapV2- 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
Description copied from interface:OrderedReturns 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:
comparatorin interfaceOrdered<K>- Returns:
- the comparator defining the element order
-
keySet
Description copied from interface:MultimapReturns the keys contained in this multimap.- Specified by:
keySetin interfaceMultimap<K,V> - Specified by:
keySetin interfaceSortedMultimap<K,V> - Overrides:
keySetin classAbstractMultimap<K, V, TreeMultimap<K,V>> - Returns:
Setof the keys contained in this multimap.
-
toJavaMap
Description copied from interface:MultimapConverts this VavrMapto ajava.util.Mapwhile preserving characteristics like insertion order (LinkedHashMultimap) and sort order (SortedMultimap).- Specified by:
toJavaMapin interfaceMultimap<K,V> - Specified by:
toJavaMapin interfaceSortedMultimap<K,V> - Overrides:
toJavaMapin classAbstractMultimap<K, V, TreeMultimap<K,V>> - Returns:
- a new
java.util.Mapinstance
-