Class LongByteHashMap
- java.lang.Object
-
- org.eclipse.collections.impl.primitive.AbstractByteIterable
-
- org.eclipse.collections.impl.map.mutable.primitive.AbstractMutableByteValuesMap
-
- org.eclipse.collections.impl.map.mutable.primitive.LongByteHashMap
-
- All Implemented Interfaces:
java.io.Externalizable
,java.io.Serializable
,ByteIterable
,ByteValuesMap
,LongByteMap
,MutableByteValuesMap
,MutableLongByteMap
,PrimitiveIterable
,MutableLongKeysMap
,LongKeysMap
public class LongByteHashMap extends AbstractMutableByteValuesMap implements MutableLongByteMap, java.io.Externalizable, MutableLongKeysMap
This file was automatically generated from template file primitivePrimitiveHashMap.stg.- Since:
- 3.0.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
LongByteHashMap.InternalByteIterator
private class
LongByteHashMap.KeySet
private class
LongByteHashMap.KeySetIterator
private class
LongByteHashMap.KeysView
private class
LongByteHashMap.KeyValuesView
private class
LongByteHashMap.ValuesCollection
-
Nested classes/interfaces inherited from class org.eclipse.collections.impl.map.mutable.primitive.AbstractMutableByteValuesMap
AbstractMutableByteValuesMap.AbstractByteValuesCollection, AbstractMutableByteValuesMap.SentinelValues
-
-
Field Summary
Fields Modifier and Type Field Description private static int
CACHE_LINE_SIZE
private boolean
copyKeysOnWrite
private static int
DEFAULT_INITIAL_CAPACITY
private static long
EMPTY_KEY
private static byte
EMPTY_VALUE
private static int
INITIAL_LINEAR_PROBE
private static int
KEY_SIZE
private long[]
keys
private int
occupiedWithData
private int
occupiedWithSentinels
private static long
REMOVED_KEY
private AbstractMutableByteValuesMap.SentinelValues
sentinelValues
private static long
serialVersionUID
private byte[]
values
-
Constructor Summary
Constructors Constructor Description LongByteHashMap()
LongByteHashMap(int initialCapacity)
LongByteHashMap(LongByteMap map)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addKeyValueAtIndex(long key, byte value, int index)
byte
addToValue(long key, byte toBeAdded)
Increments and updates the value associated with the key, if a value exists, or sets the value to be the specified value if one does not.protected void
allocateTable(int sizeToAllocate)
MutableLongByteMap
asSynchronized()
Returns a synchronized view of this map, delegating all operations to this map but ensuring only one caller has access to the map at a time.MutableLongByteMap
asUnmodifiable()
Returns an unmodifiable view of this map, delegating all read-only operations to this map and throwing anUnsupportedOperationException
for all mutating operations.MutableByteIterator
byteIterator()
Returns a primitive iterator that can be used to iterate over the ByteIterable in an imperative style.void
clear()
Removes all entries from this map.void
compact()
Rehashes every element in the set into a new backing table of the smallest possible size and eliminating removed sentinels.boolean
containsKey(long key)
Returns whether or not the key is present in the map.private void
copyKeys()
boolean
equals(java.lang.Object obj)
Follows the same general contract asMap.equals(Object)
.private byte
fastGetIfAbsent(long key, byte ifAbsent)
MutableByteLongMap
flipUniqueValues()
Return the ByteLongMap that is obtained by flipping the direction of this map and making the associations from value to key.void
forEachKey(LongProcedure procedure)
Iterates through each key in the map, invoking the procedure for each.void
forEachKeyValue(LongByteProcedure procedure)
Iterates through each key/value pair in the map, invoking the procedure for each.byte
get(long key)
Retrieves the value associated with the key.byte
getAndPut(long key, byte putValue, byte defaultValue)
Retrieves the value associated with the key if one exists; associates a putValue with the key.protected byte
getEmptyValue()
private byte
getForSentinel(long key, byte ifAbsent)
byte
getIfAbsent(long key, byte ifAbsent)
Retrieves the value associated with the key, returning the specified default value if no such mapping exists.byte
getIfAbsentPut(long key, byte value)
Retrieves the value associated with the key if one exists; if it does not, associates a value with the key.byte
getIfAbsentPut(long key, ByteFunction0 function)
Retrieves the value associated with the key if one exists; if it does not, invokes the supplier and associates the result with the key.<P> byte
getIfAbsentPutWith(long key, ByteFunction<? super P> function, P parameter)
Retrieves the value associated with the key if one exists; if it does not, invokes the value function with the parameter and associates the result with the key.byte
getIfAbsentPutWithKey(long key, LongToByteFunction function)
Retrieves the value associated with the key if one exists; if it does not, associates the result of invoking the value function with the key.protected int
getOccupiedWithData()
byte
getOrThrow(long key)
Retrieves the value associated with the key, throwing anIllegalStateException
if no such mapping exists.protected AbstractMutableByteValuesMap.SentinelValues
getSentinelValues()
protected int
getTableSize()
protected byte
getValueAtIndex(int index)
int
hashCode()
Follows the same general contract asMap.hashCode()
.<V> V
injectInto(V injectedValue, ObjectByteToObjectFunction<? super V,? extends V> function)
private static boolean
isEmptyKey(long key)
private static boolean
isNonSentinel(long key)
protected boolean
isNonSentinelAtIndex(int index)
private static boolean
isRemovedKey(long key)
MutableLongSet
keySet()
Returns a set containing all the keys in this map.LazyLongIterable
keysView()
Returns a view of the keys in this map.RichIterable<LongBytePair>
keyValuesView()
Returns a view of the key/value pairs in this map.private int
mask(int spread)
private int
maxOccupiedWithData()
static LongByteHashMap
newWithKeysValues(long key1, byte value1)
static LongByteHashMap
newWithKeysValues(long key1, byte value1, long key2, byte value2)
static LongByteHashMap
newWithKeysValues(long key1, byte value1, long key2, byte value2, long key3, byte value3)
static LongByteHashMap
newWithKeysValues(long key1, byte value1, long key2, byte value2, long key3, byte value3, long key4, byte value4)
(package private) int
probe(long element)
(package private) int
probeThree(long element, int removedIndex)
(package private) int
probeTwo(long element, int removedIndex)
void
put(long key, byte value)
Associates a value with the specified key.void
putAll(LongByteMap map)
Puts all of the key/value mappings from the specified map into this map.private void
putForEmptySentinel(byte value)
private void
putForRemovedSentinel(byte value)
void
readExternal(java.io.ObjectInput in)
private void
rehash(int newCapacity)
private void
rehashAndGrow()
LongByteHashMap
reject(LongBytePredicate predicate)
Return a copy of this map containing only the key/value pairs that do not match the predicate.void
remove(long key)
Removes the mapping associated with the key, if one exists, from the map.void
removeKey(long key)
Removes the mapping associated with the key, if one exists, from the map.private void
removeKeyAtIndex(int index)
byte
removeKeyIfAbsent(long key, byte value)
Removes the mapping associated with the key, if one exists, from the map, returning the previously associated value with the key.LongByteHashMap
select(LongBytePredicate predicate)
Return a copy of this map containing only the key/value pairs that match the predicate.protected void
setSentinelValuesNull()
private byte
slowGetIfAbsent(long key, byte ifAbsent)
private byte
slowGetIfAbsentTwo(long key, byte ifAbsent)
private int
smallestPowerOfTwoGreaterThan(int n)
(package private) int
spreadAndMask(long element)
(package private) int
spreadTwoAndMask(long element)
ImmutableLongByteMap
toImmutable()
Returns a copy of this map that is immutable (if this map is mutable) or itself if it is already immutable.java.lang.String
toString()
Returns a string with the elements of this iterable separated by commas with spaces and enclosed in square brackets.byte
updateValue(long key, byte initialValueIfAbsent, ByteToByteFunction function)
Updates or sets the value associated with the key by applying the function to the existing value, if one exists, or to the specified initial value if one does not.void
updateValues(LongByteToByteFunction function)
Updates the values in-place.MutableByteCollection
values()
Returns the values in this map as a separate collection.LongByteHashMap
withKeysValues(long key1, byte value1, long key2, byte value2)
LongByteHashMap
withKeysValues(long key1, byte value1, long key2, byte value2, long key3, byte value3)
LongByteHashMap
withKeysValues(long key1, byte value1, long key2, byte value2, long key3, byte value3, long key4, byte value4)
LongByteHashMap
withKeyValue(long key1, byte value1)
Associates a value with the specified key.LongByteHashMap
withoutAllKeys(LongIterable keys)
Removes the mappings associated with all the keys, if they exist, from this map.LongByteHashMap
withoutKey(long key)
Removes the mapping associated with the key, if one exists, from this map.void
writeExternal(java.io.ObjectOutput out)
-
Methods inherited from class org.eclipse.collections.impl.map.mutable.primitive.AbstractMutableByteValuesMap
addEmptyKeyValue, addRemovedKeyValue, allSatisfy, anySatisfy, appendString, chunk, collect, contains, containsAll, containsValue, count, detectIfNone, each, forEachValue, isEmpty, max, min, notEmpty, reject, removeEmptyKey, removeRemovedKey, select, size, sum, toArray, toArray
-
Methods inherited from class org.eclipse.collections.impl.primitive.AbstractByteIterable
asLazy, average, maxIfEmpty, median, minIfEmpty, toBag, toList, toSet, toSortedArray, toSortedList
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.collections.api.ByteIterable
allSatisfy, anySatisfy, asLazy, average, averageIfEmpty, chunk, collect, collectBoolean, collectByte, collectChar, collectDouble, collectFloat, collectInt, collectLong, collectShort, contains, containsAll, containsAll, containsAny, containsAny, containsNone, containsNone, count, detectIfNone, each, flatCollect, forEach, injectIntoBoolean, injectIntoByte, injectIntoChar, injectIntoDouble, injectIntoFloat, injectIntoInt, injectIntoLong, injectIntoShort, max, maxIfEmpty, median, medianIfEmpty, min, minIfEmpty, noneSatisfy, reduce, reduceIfEmpty, reject, select, sum, summaryStatistics, toArray, toArray, toBag, toList, toSet, toSortedArray, toSortedList, toSortedList, toSortedListBy, toSortedListBy
-
Methods inherited from interface org.eclipse.collections.api.map.primitive.ByteValuesMap
containsValue, forEachValue, tap
-
Methods inherited from interface org.eclipse.collections.api.map.primitive.LongByteMap
injectIntoKeyValue
-
Methods inherited from interface org.eclipse.collections.impl.map.primitive.LongKeysMap
isEmpty, notEmpty, size
-
Methods inherited from interface org.eclipse.collections.api.map.primitive.MutableByteValuesMap
collect, reject, select
-
Methods inherited from interface org.eclipse.collections.api.map.primitive.MutableLongByteMap
putPair, withAllKeyValues
-
Methods inherited from interface org.eclipse.collections.api.PrimitiveIterable
appendString, appendString, appendString, isEmpty, makeString, makeString, makeString, notEmpty, size
-
-
-
-
Field Detail
-
EMPTY_VALUE
private static final byte EMPTY_VALUE
- See Also:
- Constant Field Values
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
EMPTY_KEY
private static final long EMPTY_KEY
- See Also:
- Constant Field Values
-
REMOVED_KEY
private static final long REMOVED_KEY
- See Also:
- Constant Field Values
-
CACHE_LINE_SIZE
private static final int CACHE_LINE_SIZE
- See Also:
- Constant Field Values
-
KEY_SIZE
private static final int KEY_SIZE
- See Also:
- Constant Field Values
-
INITIAL_LINEAR_PROBE
private static final int INITIAL_LINEAR_PROBE
- See Also:
- Constant Field Values
-
DEFAULT_INITIAL_CAPACITY
private static final int DEFAULT_INITIAL_CAPACITY
- See Also:
- Constant Field Values
-
keys
private long[] keys
-
values
private byte[] values
-
occupiedWithData
private int occupiedWithData
-
occupiedWithSentinels
private int occupiedWithSentinels
-
sentinelValues
private AbstractMutableByteValuesMap.SentinelValues sentinelValues
-
copyKeysOnWrite
private boolean copyKeysOnWrite
-
-
Constructor Detail
-
LongByteHashMap
public LongByteHashMap()
-
LongByteHashMap
public LongByteHashMap(int initialCapacity)
-
LongByteHashMap
public LongByteHashMap(LongByteMap map)
-
-
Method Detail
-
newWithKeysValues
public static LongByteHashMap newWithKeysValues(long key1, byte value1)
-
newWithKeysValues
public static LongByteHashMap newWithKeysValues(long key1, byte value1, long key2, byte value2)
-
newWithKeysValues
public static LongByteHashMap newWithKeysValues(long key1, byte value1, long key2, byte value2, long key3, byte value3)
-
newWithKeysValues
public static LongByteHashMap newWithKeysValues(long key1, byte value1, long key2, byte value2, long key3, byte value3, long key4, byte value4)
-
smallestPowerOfTwoGreaterThan
private int smallestPowerOfTwoGreaterThan(int n)
-
getOccupiedWithData
protected int getOccupiedWithData()
- Specified by:
getOccupiedWithData
in classAbstractMutableByteValuesMap
-
getSentinelValues
protected AbstractMutableByteValuesMap.SentinelValues getSentinelValues()
- Specified by:
getSentinelValues
in classAbstractMutableByteValuesMap
-
setSentinelValuesNull
protected void setSentinelValuesNull()
- Specified by:
setSentinelValuesNull
in classAbstractMutableByteValuesMap
-
getEmptyValue
protected byte getEmptyValue()
- Specified by:
getEmptyValue
in classAbstractMutableByteValuesMap
-
getTableSize
protected int getTableSize()
- Specified by:
getTableSize
in classAbstractMutableByteValuesMap
-
getValueAtIndex
protected byte getValueAtIndex(int index)
- Specified by:
getValueAtIndex
in classAbstractMutableByteValuesMap
-
equals
public boolean equals(java.lang.Object obj)
Description copied from interface:LongByteMap
Follows the same general contract asMap.equals(Object)
.- Specified by:
equals
in interfaceLongByteMap
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
Description copied from interface:LongByteMap
Follows the same general contract asMap.hashCode()
.- Specified by:
hashCode
in interfaceLongByteMap
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
Description copied from interface:PrimitiveIterable
Returns a string with the elements of this iterable separated by commas with spaces and enclosed in square brackets.Assert.assertEquals("[]", IntLists.mutable.empty().toString()); Assert.assertEquals("[1]", IntLists.mutable.with(1).toString()); Assert.assertEquals("[1, 2, 3]", IntLists.mutable.with(1, 2, 3).toString());
- Specified by:
toString
in interfaceLongByteMap
- Specified by:
toString
in interfacePrimitiveIterable
- Overrides:
toString
in classAbstractByteIterable
- Returns:
- a string representation of this PrimitiveIterable
- See Also:
AbstractCollection.toString()
-
byteIterator
public MutableByteIterator byteIterator()
Description copied from interface:ByteIterable
Returns a primitive iterator that can be used to iterate over the ByteIterable in an imperative style.- Specified by:
byteIterator
in interfaceByteIterable
- Specified by:
byteIterator
in interfaceMutableByteValuesMap
-
injectInto
public <V> V injectInto(V injectedValue, ObjectByteToObjectFunction<? super V,? extends V> function)
- Specified by:
injectInto
in interfaceByteIterable
-
clear
public void clear()
Description copied from interface:MutableByteValuesMap
Removes all entries from this map.- Specified by:
clear
in interfaceMutableByteValuesMap
- Specified by:
clear
in interfaceMutableLongKeysMap
-
put
public void put(long key, byte value)
Description copied from interface:MutableLongByteMap
Associates a value with the specified key. If a value is already associated with the key in this map, it will be replaced withvalue
.- Specified by:
put
in interfaceMutableLongByteMap
- Parameters:
key
- the keyvalue
- the value to associate withvalue
-
putForRemovedSentinel
private void putForRemovedSentinel(byte value)
-
putForEmptySentinel
private void putForEmptySentinel(byte value)
-
putAll
public void putAll(LongByteMap map)
Description copied from interface:MutableLongByteMap
Puts all of the key/value mappings from the specified map into this map. If this map already has a value associated with one of the keys in the map, it will be replaced with the value inmap
.- Specified by:
putAll
in interfaceMutableLongByteMap
- Parameters:
map
- the map to copy into this map
-
updateValues
public void updateValues(LongByteToByteFunction function)
Description copied from interface:MutableLongByteMap
Updates the values in-place.- Specified by:
updateValues
in interfaceMutableLongByteMap
- Parameters:
function
- that takes a key and its value and that returns a new value for this key
-
removeKey
public void removeKey(long key)
Description copied from interface:MutableLongByteMap
Removes the mapping associated with the key, if one exists, from the map.- Specified by:
removeKey
in interfaceMutableLongByteMap
- Specified by:
removeKey
in interfaceMutableLongKeysMap
- Parameters:
key
- the key to remove- See Also:
MutableLongByteMap.remove(long)
-
remove
public void remove(long key)
Description copied from interface:MutableLongByteMap
Removes the mapping associated with the key, if one exists, from the map.- Specified by:
remove
in interfaceMutableLongByteMap
- Parameters:
key
- the key to remove- See Also:
MutableLongByteMap.removeKey(long)
-
removeKeyIfAbsent
public byte removeKeyIfAbsent(long key, byte value)
Description copied from interface:MutableLongByteMap
Removes the mapping associated with the key, if one exists, from the map, returning the previously associated value with the key. If no mapping existed for the key, the specified default value is returned.- Specified by:
removeKeyIfAbsent
in interfaceMutableLongByteMap
- Parameters:
key
- the key to removevalue
- the default value to return if no mapping for the key exists- Returns:
- the value previously associated with the key, if one existed,
or
value
if not
-
getIfAbsentPut
public byte getIfAbsentPut(long key, byte value)
Description copied from interface:MutableLongByteMap
Retrieves the value associated with the key if one exists; if it does not, associates a value with the key.- Specified by:
getIfAbsentPut
in interfaceMutableLongByteMap
- Parameters:
key
- the keyvalue
- the value to associate withkey
if no such mapping exists- Returns:
- the value associated with key, if one exists, or
value
if not
-
getAndPut
public byte getAndPut(long key, byte putValue, byte defaultValue)
Description copied from interface:MutableLongByteMap
Retrieves the value associated with the key if one exists; associates a putValue with the key.- Specified by:
getAndPut
in interfaceMutableLongByteMap
- Parameters:
key
- the keyputValue
- the value to associate withkey
if no such mapping existsdefaultValue
- the value to return if no mapping associated withkey
exists- Returns:
- the value associated with key, if one exists, or
defaultValue
if not
-
getIfAbsentPut
public byte getIfAbsentPut(long key, ByteFunction0 function)
Description copied from interface:MutableLongByteMap
Retrieves the value associated with the key if one exists; if it does not, invokes the supplier and associates the result with the key.- Specified by:
getIfAbsentPut
in interfaceMutableLongByteMap
- Parameters:
key
- the keyfunction
- the supplier that provides the value if no mapping exists forkey
- Returns:
- the value associated with the key, if one exists, or the result of
invoking
function
if not
-
getIfAbsentPutWith
public <P> byte getIfAbsentPutWith(long key, ByteFunction<? super P> function, P parameter)
Description copied from interface:MutableLongByteMap
Retrieves the value associated with the key if one exists; if it does not, invokes the value function with the parameter and associates the result with the key.- Specified by:
getIfAbsentPutWith
in interfaceMutableLongByteMap
- Type Parameters:
P
- the type of the value function'sparameter
- Parameters:
key
- the keyfunction
- the function that provides the value if no mapping exists. The specifiedparameter
will be passed as the argument to the function.parameter
- the parameter to provide tofunction
if no value exists forkey
- Returns:
- the value associated with the key, if one exists, or the result of
invoking
function
withparameter
if not
-
getIfAbsentPutWithKey
public byte getIfAbsentPutWithKey(long key, LongToByteFunction function)
Description copied from interface:MutableLongByteMap
Retrieves the value associated with the key if one exists; if it does not, associates the result of invoking the value function with the key.- Specified by:
getIfAbsentPutWithKey
in interfaceMutableLongByteMap
- Parameters:
key
- the keyfunction
- the function that provides the value if no mapping exists. Thekey
will be passed as the argument to the function.- Returns:
- the value associated with the key, if one exists, or the result of
invoking
function
withkey
if not
-
addToValue
public byte addToValue(long key, byte toBeAdded)
Description copied from interface:MutableLongByteMap
Increments and updates the value associated with the key, if a value exists, or sets the value to be the specified value if one does not.- Specified by:
addToValue
in interfaceMutableLongByteMap
- Parameters:
key
- the keytoBeAdded
- the amount to increment the existing value, if one exists, or to use as the initial value if one does not- Returns:
- the value after incrementing
toBeAdded
to the existing value associated withkey
ortoBeAdded
if one does not
-
addKeyValueAtIndex
private void addKeyValueAtIndex(long key, byte value, int index)
-
removeKeyAtIndex
private void removeKeyAtIndex(int index)
-
copyKeys
private void copyKeys()
-
updateValue
public byte updateValue(long key, byte initialValueIfAbsent, ByteToByteFunction function)
Description copied from interface:MutableLongByteMap
Updates or sets the value associated with the key by applying the function to the existing value, if one exists, or to the specified initial value if one does not.- Specified by:
updateValue
in interfaceMutableLongByteMap
- Parameters:
key
- the keyinitialValueIfAbsent
- the initial value to supply to the function if no mapping exists for the keyfunction
- the function that returns the updated value based on the current value or the initial value, if no value exists- Returns:
- the new value associated with the key, either as a result of applying
function
to the value already associated with the key or as a result of applying it toinitialValueIfAbsent
and associating the result withkey
-
withKeyValue
public LongByteHashMap withKeyValue(long key1, byte value1)
Description copied from interface:MutableLongByteMap
Associates a value with the specified key. If a value is already associated with the key in this map, it will be replaced withvalue
.- Specified by:
withKeyValue
in interfaceMutableLongByteMap
- Parameters:
key1
- the keyvalue1
- the value to associate withvalue
- Returns:
- this map
- See Also:
MutableLongByteMap.put(long, byte)
-
withKeysValues
public LongByteHashMap withKeysValues(long key1, byte value1, long key2, byte value2)
-
withKeysValues
public LongByteHashMap withKeysValues(long key1, byte value1, long key2, byte value2, long key3, byte value3)
-
withKeysValues
public LongByteHashMap withKeysValues(long key1, byte value1, long key2, byte value2, long key3, byte value3, long key4, byte value4)
-
withoutKey
public LongByteHashMap withoutKey(long key)
Description copied from interface:MutableLongByteMap
Removes the mapping associated with the key, if one exists, from this map.- Specified by:
withoutKey
in interfaceMutableLongByteMap
- Parameters:
key
- the key to remove- Returns:
- this map
- See Also:
MutableLongByteMap.remove(long)
-
withoutAllKeys
public LongByteHashMap withoutAllKeys(LongIterable keys)
Description copied from interface:MutableLongByteMap
Removes the mappings associated with all the keys, if they exist, from this map.- Specified by:
withoutAllKeys
in interfaceMutableLongByteMap
- Parameters:
keys
- the keys to remove- Returns:
- this map
- See Also:
MutableLongByteMap.remove(long)
-
asUnmodifiable
public MutableLongByteMap asUnmodifiable()
Description copied from interface:MutableLongByteMap
Returns an unmodifiable view of this map, delegating all read-only operations to this map and throwing anUnsupportedOperationException
for all mutating operations. This avoids the overhead of copying the map when callingLongByteMap.toImmutable()
while still providing immutability.- Specified by:
asUnmodifiable
in interfaceMutableLongByteMap
- Returns:
- an unmodifiable view of this map
-
asSynchronized
public MutableLongByteMap asSynchronized()
Description copied from interface:MutableLongByteMap
Returns a synchronized view of this map, delegating all operations to this map but ensuring only one caller has access to the map at a time.- Specified by:
asSynchronized
in interfaceMutableLongByteMap
- Returns:
- a synchronized view of this map
-
toImmutable
public ImmutableLongByteMap toImmutable()
Description copied from interface:LongByteMap
Returns a copy of this map that is immutable (if this map is mutable) or itself if it is already immutable.- Specified by:
toImmutable
in interfaceLongByteMap
- Returns:
- an immutable map that is equivalent to this one
-
get
public byte get(long key)
Description copied from interface:LongByteMap
Retrieves the value associated with the key. If no mapping exists for the key, the default value (usually0
) is returned.- Specified by:
get
in interfaceLongByteMap
- Parameters:
key
- the key- Returns:
- the value associated with the key, or the default value if no such mapping exists
-
getIfAbsent
public byte getIfAbsent(long key, byte ifAbsent)
Description copied from interface:LongByteMap
Retrieves the value associated with the key, returning the specified default value if no such mapping exists.- Specified by:
getIfAbsent
in interfaceLongByteMap
- Parameters:
key
- the keyifAbsent
- the default value to return if no mapping exists forkey
- Returns:
- the value associated with the key, or
ifAbsent
if no such mapping exists.
-
getForSentinel
private byte getForSentinel(long key, byte ifAbsent)
-
slowGetIfAbsent
private byte slowGetIfAbsent(long key, byte ifAbsent)
-
fastGetIfAbsent
private byte fastGetIfAbsent(long key, byte ifAbsent)
-
slowGetIfAbsentTwo
private byte slowGetIfAbsentTwo(long key, byte ifAbsent)
-
getOrThrow
public byte getOrThrow(long key)
Description copied from interface:LongByteMap
Retrieves the value associated with the key, throwing anIllegalStateException
if no such mapping exists.- Specified by:
getOrThrow
in interfaceLongByteMap
- Parameters:
key
- the key- Returns:
- the value associated with the key
-
containsKey
public boolean containsKey(long key)
Description copied from interface:LongByteMap
Returns whether or not the key is present in the map.- Specified by:
containsKey
in interfaceLongByteMap
- Specified by:
containsKey
in interfaceLongKeysMap
- Parameters:
key
- the key- Returns:
- if a mapping exists in this map for the key
-
forEachKey
public void forEachKey(LongProcedure procedure)
Description copied from interface:LongByteMap
Iterates through each key in the map, invoking the procedure for each.- Specified by:
forEachKey
in interfaceLongByteMap
- Specified by:
forEachKey
in interfaceLongKeysMap
- Parameters:
procedure
- the procedure to invoke for each key
-
forEachKeyValue
public void forEachKeyValue(LongByteProcedure procedure)
Description copied from interface:LongByteMap
Iterates through each key/value pair in the map, invoking the procedure for each.- Specified by:
forEachKeyValue
in interfaceLongByteMap
- Parameters:
procedure
- the procedure to invoke for each key/value pair
-
keysView
public LazyLongIterable keysView()
Description copied from interface:LongByteMap
Returns a view of the keys in this map. This iterable is backed by the map, so any modifications to the underlying map will be reflected in the keys returned by the iterable.- Specified by:
keysView
in interfaceLongByteMap
- Returns:
- a view of the keys in this map
-
keyValuesView
public RichIterable<LongBytePair> keyValuesView()
Description copied from interface:LongByteMap
Returns a view of the key/value pairs in this map. This iterable is backed by the map, so any modifications to the underlying map will be reflected in the pairs returned by the iterable.- Specified by:
keyValuesView
in interfaceLongByteMap
- Returns:
- a view of the keys in this map
-
flipUniqueValues
public MutableByteLongMap flipUniqueValues()
Description copied from interface:LongByteMap
Return the ByteLongMap that is obtained by flipping the direction of this map and making the associations from value to key.- Specified by:
flipUniqueValues
in interfaceLongByteMap
- Specified by:
flipUniqueValues
in interfaceMutableLongByteMap
-
select
public LongByteHashMap select(LongBytePredicate predicate)
Description copied from interface:LongByteMap
Return a copy of this map containing only the key/value pairs that match the predicate.- Specified by:
select
in interfaceLongByteMap
- Specified by:
select
in interfaceMutableLongByteMap
- Parameters:
predicate
- the predicate to determine which key/value pairs in this map should be included in the returned map- Returns:
- a copy of this map with the matching key/value pairs
-
reject
public LongByteHashMap reject(LongBytePredicate predicate)
Description copied from interface:LongByteMap
Return a copy of this map containing only the key/value pairs that do not match the predicate.- Specified by:
reject
in interfaceLongByteMap
- Specified by:
reject
in interfaceMutableLongByteMap
- Parameters:
predicate
- the predicate to determine which key/value pairs in this map should be excluded from the returned map- Returns:
- a copy of this map without the matching key/value pairs
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
- Specified by:
writeExternal
in interfacejava.io.Externalizable
- Throws:
java.io.IOException
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
- Specified by:
readExternal
in interfacejava.io.Externalizable
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
compact
public void compact()
Rehashes every element in the set into a new backing table of the smallest possible size and eliminating removed sentinels.
-
rehashAndGrow
private void rehashAndGrow()
-
rehash
private void rehash(int newCapacity)
-
probe
int probe(long element)
-
probeTwo
int probeTwo(long element, int removedIndex)
-
probeThree
int probeThree(long element, int removedIndex)
-
spreadAndMask
int spreadAndMask(long element)
-
spreadTwoAndMask
int spreadTwoAndMask(long element)
-
mask
private int mask(int spread)
-
allocateTable
protected void allocateTable(int sizeToAllocate)
-
isEmptyKey
private static boolean isEmptyKey(long key)
-
isRemovedKey
private static boolean isRemovedKey(long key)
-
isNonSentinel
private static boolean isNonSentinel(long key)
-
isNonSentinelAtIndex
protected boolean isNonSentinelAtIndex(int index)
- Specified by:
isNonSentinelAtIndex
in classAbstractMutableByteValuesMap
-
maxOccupiedWithData
private int maxOccupiedWithData()
-
keySet
public MutableLongSet keySet()
Description copied from interface:LongByteMap
Returns a set containing all the keys in this map. The set is backed by the map, so any modifications to the returned set will affect this map.- Specified by:
keySet
in interfaceLongByteMap
- Returns:
- a mutable set containing the keys in this map
-
values
public MutableByteCollection values()
Description copied from interface:ByteValuesMap
Returns the values in this map as a separate collection. The returned collection is backed by the map, so any changes made to the returned collection will affect the state of this map.- Specified by:
values
in interfaceByteValuesMap
- Returns:
- the values as a collection backed by this map
-
-