Package com.github.tommyettinger.ds
package com.github.tommyettinger.ds
A large package of all data structures in this library, plus some interfaces they use.
-
ClassDescriptionIndicates that a type can have its contents change position, without specifying the type of contents.An empty interface that merges Arrangeable and java.util.List APIs.BinaryHeap<T extends BinaryHeap.Node>A binary heap that stores nodes which each have a float value and are sorted either lowest first or highest first.BinaryHeap.HeapIterator<T extends BinaryHeap.Node>A binary heap node.An unordered List of boolean items.A resizable, insertion-ordered double-ended queue of primitive
booleanwith efficient add and remove at the beginning and end.ABooleanIteratorover the elements of a BooleanDeque.A resizable, insertion-ordered boolean list.ABooleanIterator, plusListIteratormethods, over the elements of a BooleanList.An unordered List of byte items.A resizable, insertion-ordered double-ended queue of primitivebytewith efficient add and remove at the beginning and end.AByteIteratorover the elements of a ByteDeque.A resizable, insertion-ordered byte list.AByteIterator, plusListIteratormethods, over the elements of a ByteList.A custom variant on ObjectObjectMap that always uses CharSequence keys and compares them as case-insensitive.A custom variant on ObjectObjectOrderedMap that always uses CharSequence keys and compares them as case-insensitive.A custom variant on ObjectOrderedSet that always uses CharSequence keys and compares them as case-insensitive.A custom variant on ObjectSet that always uses CharSequence keys and compares them as case-insensitive.This mostly-internal class only exists to help case-insensitive comparisons and hashing.An unordered List of char items.A bit set, which can be seen as a set of char positions in the Unicode Basic Multilingual Plane (the first 65536 chars in Unicode).A resizable, insertion-ordered double-ended queue of primitivecharwith efficient add and remove at the beginning and end.ACharIteratorover the elements of a CharDeque.A small class that holds two functional-interface values used for filtering and editing characters, and a name they are associated with.A resizable, insertion-ordered char list.ACharIterator, plusListIteratormethods, over the elements of a CharList.An unordered List of double items.A resizable, insertion-ordered double-ended queue of primitivedoublewith efficient add and remove at the beginning and end.ADoubleIteratorover the elements of a DoubleDeque.A resizable, insertion-ordered double list.ADoubleIterator, plusListIteratormethods, over the elements of a DoubleList.AugmentsCollectionwith default methods that can usually use the same implementation across subtypes.An unordered map where the keys areEnums and values are primitive floats.An insertion-ordered map where the keys areEnums and values are primitive floats.An unordered map where the keys areEnums and values are primitive ints.An insertion-ordered map where the keys areEnums and values are primitive ints.An unordered map where the keys areEnums and values are primitive longs.An insertion-ordered map where the keys areEnums and values are primitive longs.EnumMap<V>An unordered map where the keys areEnums and values are objects.EnumMap.MapIterator<V,I> AnEnumMapthat also stores keys in anObjectListusing the insertion order.AnEnumSetthat also stores keys in anObjectListusing the insertion order.A naturally-ordered Set of Enum items.FilteredIterableMap<K,I extends Iterable<K>, V> A customizable variant on ObjectMap that uses Iterable keys made of K sub-keys, and only considers a sub-key (for equality and hashing purposes) if that sub-key satisfies a predicate.FilteredIterableOrderedMap<K,I extends Iterable<K>, V> A customizable variant on ObjectMap that uses Iterable keys made of K sub-keys, and only considers a sub-key (for equality and hashing purposes) if that sub-key satisfies a predicate.FilteredIterableOrderedSet<T,I extends Iterable<T>> A customizable variant on ObjectOrderedSet that uses Iterable items made of T sub-items, and only considers a sub-item (for equality and hashing purposes) if that sub-item satisfies a predicate.FilteredIterableSet<T,I extends Iterable<T>> A customizable variant on ObjectSet that uses Iterable items made of T sub-items, and only considers a sub-item (for equality and hashing purposes) if that sub-item satisfies a predicate.A custom variant on ObjectObjectMap that always uses String keys, but only considers any character in an item (for equality and hashing purposes) if that character satisfies a predicate.A custom variant on ObjectObjectOrderedMap that always uses String keys, but only considers any character in an item (for equality and hashing purposes) if that character satisfies a predicate.A customizable variant on ObjectOrderedSet that always uses String keys, but only considers any character in an item (for equality and hashing purposes) if that character satisfies a predicate.A customizable variant on ObjectSet that always uses String keys, but only considers any character in an item (for equality and hashing purposes) if that character satisfies a predicate.An unordered List of float items.A resizable, insertion-ordered double-ended queue of primitivefloatwith efficient add and remove at the beginning and end.AFloatIteratorover the elements of a FloatDeque.A resizable, insertion-ordered float list.AFloatIterator, plusListIteratormethods, over the elements of a FloatList.HolderOrderedSet<T,K> AHolderSetthat also stores items in anObjectListusing the insertion order.HolderSet<T,K> An unordered set where the items are objects but access to items is done with a specific key component held by each item, and the component is extracted from an item by a given Function.IdentityObjectMap<K,V> A variant onObjectObjectMapthat compares keys by identity (using==) instead of equality (usingequals()).A variant onObjectObjectOrderedMapthat compares keys by identity (using==) instead of equality (using equals()}).A variant onObjectOrderedSetthat compares items by identity (using==) instead of equality (usingequals()).IdentitySet<T>A variant onObjectSetthat compares items by identity (using==) instead of equality (usingequals()).An unordered List of int items.A resizable, insertion-ordered double-ended queue of primitiveintwith efficient add and remove at the beginning and end.AIntIteratorover the elements of an IntDeque.An unordered map where the keys are unboxed ints and the values are unboxed floats.AnIntFloatMapthat also stores keys in anIntListusing the insertion order.An unordered map where the keys are unboxed ints and the values are also unboxed ints.A resizable, insertion-ordered int list.AIntIterator, plusListIteratormethods, over the elements of a IntList.An unordered map where the keys are unboxed ints and the values are unboxed longs.AnIntLongMapthat also stores keys in anIntListusing the insertion order.IntObjectMap<V>An unordered map where the keys are unboxed ints and the values are objects.AnIntObjectMapthat also stores keys in anIntListusing the insertion order.An unordered set where the items are unboxed ints.Junction<T extends Comparable<T>>Junction.All<T extends Comparable<T>>Takes one or more Terms and matches if all of those Terms match.Junction.Any<T extends Comparable<T>>Takes one or more Terms and matches if any of those Terms match.Junction.Leaf<T extends Comparable<T>>Simply matches a singleTvalue, with no additional Terms involved.Junction.Not<T extends Comparable<T>>Takes a Term and treats a case where it matches or doesn't match as the opposite.Junction.One<T extends Comparable<T>>Takes one or more Terms and matches if exactly one of those Terms matches.Lisque<T>A combination List/Deque with some expanded features based on Deque's mix of exceptional and non-exceptional methods.An unordered List of long items.A resizable, insertion-ordered double-ended queue of primitivelongwith efficient add and remove at the beginning and end.ALongIteratorover the elements of a LongDeque.An unordered map where the keys are unboxed longs and the values are unboxed floats.ALongFloatMapthat also stores keys in aLongListusing the insertion order.An unordered map where the keys are unboxed longs and the values are unboxed ints.ALongIntMapthat also stores keys in aLongListusing the insertion order.A resizable, insertion-ordered long list.ALongIterator, plusListIteratormethods, over the elements of a LongList.An unordered map where the keys are unboxed longs and the values are also unboxed longs.ALongLongMapthat also stores keys in aLongListusing the insertion order.An unordered map where the keys are unboxed longs and the values are objects.ALongObjectMapthat also stores keys in anLongListusing the insertion order.An unordered set where the items are unboxed longs.NumberedSet<T>An Ordered Set ofTitems where theNumberedSet.indexOf(Object)operation runs in constant time, but any removal from the middle of the order runs in linear time.ObjectBag<T>An unordered List of T items.ObjectDeque<T>A resizable, insertion-ordered double-ended queue of objects with efficient add and remove at the beginning and end.An unordered map where the keys are objects and the values are unboxed floats.AnObjectFloatMapthat also stores keys in anObjectListusing the insertion order.ObjectIntMap<K>An unordered map where the keys are objects and the values are unboxed ints.AnObjectIntMapthat also stores keys in anObjectListusing the insertion order.ObjectList<T>A resizable, insertion-ordered list ofTitems, typically objects (they can also be arrays).An unordered map where the keys are objects and the values are unboxed longs.AnObjectLongMapthat also stores keys in anObjectListusing the insertion order.ObjectObjectMap<K,V> An unordered map where the keys and values are objects.ObjectObjectMap.Keys<K,V> ObjectObjectMap.MapIterator<K,V, I> AnObjectObjectMapthat also stores keys in anObjectListusing the insertion order.AObjectSetthat also stores keys in anObjectListusing the insertion order.ObjectSet<T>An unordered set where the keys are objects.A bit set, which can be seen as a set of integer positions greater than some starting number, that has changeable offset, or starting position.Ordered<T>Ensures that implementors allow access to the order ofTitems as an ObjectList.A primitive specialization ofOrderedfor collections of double values instead of objects.A primitive specialization ofOrderedfor collections of float values instead of objects.A primitive specialization ofOrderedfor collections of int values instead of objects.A primitive specialization ofOrderedfor collections of long values instead of objects.Used to determine what class Ordered objects will use for theirOrdered.order()implementation.Analogous toCollectionbut for a primitive type, this is technically built aroundIterator, but should almost always use a primitive-specialized iterator such asFloatIteratorinstead of the genericIterator.A PrimitiveCollection with unboxedbooleanitems.A PrimitiveCollection with unboxedbyteitems.A PrimitiveCollection with unboxedcharitems.A PrimitiveCollection with unboxeddoubleitems.A PrimitiveCollection with unboxedfloatitems.A PrimitiveCollection with unboxedintitems.A PrimitiveCollection with unboxedlongitems.A PrimitiveCollection with unboxedshortitems.PrimitiveSet<T>Analogous toSetbut for a primitive type, this extendsPrimitiveCollectionand the nested classes here extend the nested classes inPrimitiveCollection.Implementation of Tony Hoare's quickselect algorithm.This class is for selecting a ranked element (kth ordered statistic) from an unordered list in faster time than sorting the whole array.An unordered List of short items.A resizable, insertion-ordered double-ended queue of primitiveshortwith efficient add and remove at the beginning and end.AShortIteratorover the elements of a ShortDeque.A resizable, insertion-ordered short list.AShortIterator, plusListIteratormethods, over the elements of a ShortList.Term<T extends Comparable<T>>Mostly internal; describes part of aJunction.Utility code shared by various data structures in this package.