Package io.lacuna.bifurcan
package io.lacuna.bifurcan
-
ClassDescriptionDirectedAcyclicGraph<V,
E> A directed graph which will throw aDirectedAcyclicGraph.CycleException
if any new edge creates a cycle.DirectedGraph<V,E> FloatMap<V>A map which has floating-point keys, built atopIntMap
, with which it shares performance characteristics.Graph<V,E> Graphs.DirectedEdge<V,E> ICollection<C,V> IEdge<V,E> IEntry<K,V> IEntry.WithHash<K,V> IGraph<V,E> IList<V>IList.Mixin<V>IMap<K,V> IMap.Mixin<K,V> IntMap<V>A map which has integer keys, which is an combination of Okasaki and Gill's Fast Mergeable Integer Maps with the memory layout suggested by Steindorfer and Vinju used inMap
, with which it shares the same broad performance characteristics.ISet<V>ISet.Mixin<V>ISortedMap<K,V> ISortedMap.Mixin<K,V> ISortedSet<V>LinearList<V>A simple implementation of a mutable list combining the best characteristics ofArrayList
andArrayDeque
, allowing elements to be added and removed from both ends of the collection and allowing random-access reads and updates.LinearMap<K,V> A hash-map implementation which uses Robin Hood hashing for placement, and allows for customized hashing and equality semantics.LinearSet<V>A set which builds atopLinearMap
, and shares the same performance characteristics.List<V>An implementation of an immutable list which allows for elements to be added and removed from both ends of the collection, as well as random-access reads and writes.Utility functions for classes implementingIList
.Map<K,V> An implementation of an immutable hash-map based on the general approach described by Steindorfer and Vinju in this paper.Utility functions for classes implementingIMap
.Maps.Entry<K,V> Maps.HashEntry<K,V> A tree-based immutable string representation, indexed on both full Unicode code points and Java's UTF-16 code units.Set<V>A set which builds atopMap
, and shares the same performance characteristics.Utility functions for classes implementingISet
.SortedMap<K,V> A red-black tree based on Germane 2014.SortedSet<V>