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 immutableBitSetimplementation.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 immutableHashMapimplementation based on a Hash array mapped trie (HAMT).HashMultimap<K,V> HashSet<T>An immutableHashSetimplementation.IndexedSeq<T>Interface for immutable, indexed sequences.Iterator<T>io.vavr.collection.Iteratoris a compositional replacement forjava.util.Iteratorwhose purpose is to iterate once over a sequence of elements.LinearSeq<T>Interface for immutable, linear sequences.LinkedHashMap<K,V> An immutableLinkedHashMapimplementation that has predictable (insertion-order) iteration.LinkedHashMultimap<K,V> ALinkedHashMap-based implementation ofMultimapAn immutableHashSetimplementation that has predictable (insertion-order) iteration.List<T>An immutableListis an eager sequence of elements.List.Cons<T>Non-emptyList, consisting of aheadand atail.List.Nil<T>Representation of the singleton emptyList.Map<K,V> An immutableMapinterface.Multimap<K,V> An immutableMultimapinterface.Ordered<T>An ordered collection interface.A PriorityQueue.Queue<T>An immutableQueuestores elements allowing a first-in-first-out (FIFO) retrieval.Seq<T>Interface for immutable sequential data structures.Set<T>An immutableSetinterface.SortedMap<K,V> An immutableSortedMapinterface.SortedMultimap<K,V> An immutableSortedMultimapinterface.SortedSet<T>An immutableSortedSetinterface.Stream<T>An immutableStreamis 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.