Package io.vavr.collection
package io.vavr.collection
Purely functional collections based on Traversable.
Performance Characteristics of Vavr Collections
head() | tail() | get(int) | update(int, T) | prepend(T) | append(T) | |
---|---|---|---|---|---|---|
Array | const | linear | const | linear | linear | linear |
CharSeq | const | linear | const | linear | linear | linear |
Iterator | const | const | — | — | — | — |
List | const | const | linear | linear | const | linear |
Queue | const | consta | linear | linear | const | const |
PriorityQueue | log | log | — | — | log | log |
Stream | const | const | linear | linear | constlazy | constlazy |
Vector | consteff | consteff | consteff | consteff | consteff | consteff |
contains/Key | add/put | remove | min | |
---|---|---|---|---|
HashMap | consteff | consteff | consteff | linear |
HashSet | consteff | consteff | consteff | linear |
LinkedHashMap | consteff | linear | linear | linear |
LinkedHashSet | consteff | linear | linear | linear |
Tree | log | log | log | log |
TreeMap | log | log | log | log |
TreeSet | log | log | log | log |
- const · constant time
- consta · amortized constant time, few operations may take longer
- consteff · effectively constant time, depending on assumptions like distribution of hash keys
- constlazy · lazy constant time, the operation is deferred
- log · logarithmic time
- linear · linear time
-
ClassDescriptionArray<T>Array is a Traversable wrapper for
Object[]
containing elements of typeT
.BitSet<T>An immutableBitSet
implementation.The CharSeq (read: character sequence) collection essentially is a rich String wrapper having all operations we know from the functional Vavr collections.Foldable<T>Interface of foldable data structures.HashMap<K,V> An immutableHashMap
implementation based on a Hash array mapped trie (HAMT).HashMultimap<K,V> HashSet<T>An immutableHashSet
implementation.IndexedSeq<T>Interface for immutable, indexed sequences.Iterator<T>io.vavr.collection.Iterator
is a compositional replacement forjava.util.Iterator
whose purpose is to iterate once over a sequence of elements.LinearSeq<T>Interface for immutable, linear sequences.LinkedHashMap<K,V> An immutableLinkedHashMap
implementation that has predictable (insertion-order) iteration.LinkedHashMultimap<K,V> ALinkedHashMap
-based implementation ofMultimap
An immutableHashSet
implementation that has predictable (insertion-order) iteration.List<T>An immutableList
is an eager sequence of elements.List.Cons<T>Non-emptyList
, consisting of ahead
and atail
.List.Nil<T>Representation of the singleton emptyList
.Map<K,V> An immutableMap
interface.Multimap<K,V> An immutableMultimap
interface.Ordered<T>An ordered collection interface.A PriorityQueue.Queue<T>An immutableQueue
stores elements allowing a first-in-first-out (FIFO) retrieval.Seq<T>Interface for immutable sequential data structures.Set<T>An immutableSet
interface.SortedMap<K,V> An immutableSortedMap
interface.SortedMultimap<K,V> An immutableSortedMultimap
interface.SortedSet<T>An immutableSortedSet
interface.Stream<T>An immutableStream
is lazy sequence of elements which may be infinitely long.Stream.Cons<T>Non-emptyStream
, consisting of ahead
, andtail
.Stream.Empty<T>The empty Stream.Traversable<T>An interface for inherently recursive, multi-valued data structures.Tree<T>A general Tree interface.Tree.Empty<T>The empty tree.Tree.Node<T>Represents a tree node.Tree traversal order.TreeMap<K,V> SortedMap implementation, backed by a Red/Black Tree.TreeMultimap<K,V> TreeSet<T>SortedSet implementation, backed by a Red/Black Tree.Vector<T>Vector is the default Seq implementation that provides effectively constant time access to any element.