Class AbstractTrieSetMultimap<K, V, C extends Iterable<V>, R extends MultimapNode<K,V,C,R> >
java.lang.Object
io.usethesource.capsule.core.AbstractTrieSetMultimap<K,V,C,R>
- All Implemented Interfaces:
SetMultimap<K,V>, Serializable
- Direct Known Subclasses:
AbstractPersistentTrieSetMultimap, AbstractTransientTrieSetMultimap
public abstract class AbstractTrieSetMultimap<K, V, C extends Iterable<V>, R extends MultimapNode<K,V,C,R>>
extends Object
implements SetMultimap<K,V>, Serializable
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classAbstractTrieSetMultimap.AbstractSetMultimapIterator<K, V, C, R extends MultimapNode<K,V, C, R>> Iterator skeleton that uses a fixed stack in depth.protected static classAbstractTrieSetMultimap.SetMultimapKeyIterator<K, V, C, R extends MultimapNode<K,V, C, R>> protected static classAbstractTrieSetMultimap.SetMultimapNativeTupleIterator<K, V, C, R extends MultimapNode<K,V, C, R>> protected static classAbstractTrieSetMultimap.SetMultimapTupleIterator<K, V, C extends Iterable<V>, R extends MultimapNode<K,V, C, R>, T> protected static classAbstractTrieSetMultimap.SetMultimapValueIterator<K, V, C, R extends MultimapNode<K,V, C, R>> private static classAbstractTrieSetMultimap.TrieSetMultimap_BleedingEdgeNodeIterator<K, V, C, R extends MultimapNode<K,V, C, R>> Iterator that first iterates over inlined-values and then continues depth first recursively.Nested classes/interfaces inherited from interface SetMultimap
SetMultimap.Immutable<K,V>, SetMultimap.Transient<K, V> -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final EqualityComparator<Object> private static final long -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static final <K,V> boolean checkHashCodeAndSize(int targetHash, int targetSize, Iterator<Map.Entry<K, V>> iterator) private static final <K> booleancheckKeySetHashCodeAndSize(int targetHash, int targetSize, Iterator<K> iterator) protected abstract CcollectionToInternalFormat(Set.Immutable<V> valueCollection) final booleancontainsEntry(Object o0, Object o1) final booleanfinal booleanentrySet()booleanCompares the specified object for equality against this multimap.final Set.Immutable<V> (package private) abstract int(package private) abstract int(package private) abstract intprotected int(package private) abstract RinthashCode()Returns the hash code for this multimap.protected static <K, V, C extends Iterable<V>, R extends MultimapNode<K,V, C, R>>
inthashCode(R rootNode) protected abstract Set.Immutable<V> internalFormatToCollection(C values) keySet()protected static <K, V, C extends Iterable<V>, R extends MultimapNode<K,V, C, R>>
intkeySetHashCode(R rootNode) protected static <K, V, C extends Iterable<V>, R extends MultimapNode<K,V, C, R>>
intkeySetSize(R rootNode) Iterates over the raw internal structure.protected static <K, V, C extends Iterable<V>, R extends MultimapNode<K,V, C, R>>
intsize(R rootNode) toString()static final inttransformHashCode(int hash) private static final <K,V> int tupleHash(int keyHash, int valueHash) private static final <K, V, C extends Collection<V>>
inttupleHash(int keyHash, C values) private static final <K,V> int tupleHash(int keyHash, V value) private static final <K, V, C extends Collection<V>>
inttupleHash(K key, C values) private static final <K,V> int tupleHash(K key, V value) <T> Iterator<T> tupleIterator(BiFunction<K, V, T> tupleOf) private Spliterator<C> valueCollectionsSpliterator(Function<V, C> converter) valueCollectionsStream(Function<V, C> converter) valueIterator(Function<V, C> converter) final Collection<V> values()protected abstract Set.Immutable<V> valueToTemporaryBox(V value) Methods inherited from interface SetMultimap
isEmpty, size, sizeDistinct, tupleStream
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
cmp
-
-
Constructor Details
-
AbstractTrieSetMultimap
-
-
Method Details
-
getRootNode
-
getCachedSize
abstract int getCachedSize() -
getCachedKeySetHashCode
abstract int getCachedKeySetHashCode() -
getCachedKeySetSize
abstract int getCachedKeySetSize() -
valueToTemporaryBox
-
collectionToInternalFormat
-
internalFormatToCollection
-
tupleHash
private static final <K,V> int tupleHash(int keyHash, int valueHash) -
tupleHash
private static final <K,V> int tupleHash(int keyHash, V value) -
tupleHash
private static final <K,V> int tupleHash(K key, V value) -
tupleHash
-
tupleHash
-
transformHashCode
public static final int transformHashCode(int hash) -
hashCode
protected static <K, V, C extends Iterable<V>, R extends MultimapNode<K,V, int hashCodeC, R>> (R rootNode) -
size
protected static <K, V, C extends Iterable<V>, R extends MultimapNode<K,V, int sizeC, R>> (R rootNode) -
keySetHashCode
protected static <K, V, C extends Iterable<V>, R extends MultimapNode<K,V, int keySetHashCodeC, R>> (R rootNode) -
keySetSize
protected static <K, V, C extends Iterable<V>, R extends MultimapNode<K,V, int keySetSizeC, R>> (R rootNode) -
checkHashCodeAndSize
-
checkKeySetHashCodeAndSize
private static final <K> boolean checkKeySetHashCodeAndSize(int targetHash, int targetSize, Iterator<K> iterator) -
nodeIterator
-
getNodeCount
protected int getNodeCount() -
containsKey
- Specified by:
containsKeyin interfaceSetMultimap<K,V>
-
containsValue
- Specified by:
containsValuein interfaceSetMultimap<K,V>
-
containsEntry
- Specified by:
containsEntryin interfaceSetMultimap<K,V>
-
get
- Specified by:
getin interfaceSetMultimap<K,V>
-
keyIterator
- Specified by:
keyIteratorin interfaceSetMultimap<K,V>
-
valueIterator
- Specified by:
valueIteratorin interfaceSetMultimap<K,V>
-
valueIterator
-
entryIterator
- Specified by:
entryIteratorin interfaceSetMultimap<K,V>
-
nativeEntryIterator
Description copied from interface:SetMultimapIterates over the raw internal structure. Optional operation.- Specified by:
nativeEntryIteratorin interfaceSetMultimap<K,V> - Returns:
- native iterator, if supported
-
tupleIterator
- Specified by:
tupleIteratorin interfaceSetMultimap<K,V>
-
valueCollectionsSpliterator
-
valueCollectionsStream
-
keySet
-
values
- Specified by:
valuesin interfaceSetMultimap<K,V>
-
entrySet
-
hashCode
-
equals
Description copied from interface:SetMultimap -
toString
-