public class OpenFloatLongHashMap extends AbstractFloatLongMap
Modifier and Type | Class and Description |
---|---|
class |
OpenFloatLongHashMap.MapElement |
class |
OpenFloatLongHashMap.MapIterator |
Modifier and Type | Field and Description |
---|---|
protected static byte |
FREE |
protected int |
freeEntries
The number of table entries in state==FREE.
|
protected static byte |
FULL |
protected static float |
NO_KEY_VALUE |
protected static byte |
REMOVED |
protected byte[] |
state
The state of each hash table entry (FREE, FULL, REMOVED).
|
protected float[] |
table
The hash table keys.
|
protected long[] |
values
The hash table values.
|
DEFAULT_CAPACITY, DEFAULT_MAX_LOAD_FACTOR, DEFAULT_MIN_LOAD_FACTOR, distinct, highWaterMark, lowWaterMark, maxLoadFactor, minLoadFactor
Constructor and Description |
---|
OpenFloatLongHashMap()
Constructs an empty map with default capacity and default load factors.
|
OpenFloatLongHashMap(int initialCapacity)
Constructs an empty map with the specified initial capacity and default load factors.
|
OpenFloatLongHashMap(int initialCapacity,
double minLoadFactor,
double maxLoadFactor)
Constructs an empty map with the specified initial capacity and the specified minimum and maximum load factor.
|
Modifier and Type | Method and Description |
---|---|
long |
adjustOrPutValue(float key,
long newValue,
long incrValue)
Check the map for a key.
|
void |
clear()
Removes all (key,value) associations from the receiver.
|
Object |
clone()
Returns a deep copy of the receiver.
|
boolean |
containsKey(float key)
Returns true if the receiver contains the specified key.
|
boolean |
containsValue(long value)
Returns true if the receiver contains the specified value.
|
void |
ensureCapacity(int minCapacity)
Ensures that the receiver can hold at least the specified number of associations without needing to allocate new
internal memory.
|
boolean |
forEachKey(FloatProcedure procedure)
Applies a procedure to each key of the receiver, if any.
|
boolean |
forEachPair(FloatLongProcedure procedure)
Applies a procedure to each (key,value) pair of the receiver, if any.
|
long |
get(float key)
Returns the value associated with the specified key.
|
protected void |
getInternalFactors(int[] capacity,
double[] minLoadFactor,
double[] maxLoadFactor)
Access for unit tests.
|
protected int |
indexOfInsertion(float key) |
protected int |
indexOfKey(float key) |
protected int |
indexOfValue(long value) |
Iterator<OpenFloatLongHashMap.MapElement> |
iterator() |
void |
keys(FloatArrayList list)
Fills all keys contained in the receiver into the specified list.
|
void |
pairsMatching(FloatLongProcedure condition,
FloatArrayList keyList,
LongArrayList valueList)
Fills all pairs satisfying a given condition into the specified lists.
|
boolean |
put(float key,
long value)
Associates the given key with the given value.
|
protected void |
rehash(int newCapacity)
Rehashes the contents of the receiver into a new table with a smaller or larger capacity.
|
boolean |
removeKey(float key)
Removes the given key with its associated element from the receiver, if present.
|
protected void |
setUp(int initialCapacity,
double minLoadFactor,
double maxLoadFactor)
Initializes the receiver.
|
void |
trimToSize()
Trims the capacity of the receiver to be the receiver's current size.
|
void |
values(LongArrayList list)
Fills all values contained in the receiver into the specified list.
|
copy, equals, hashCode, keys, keysSortedByValue, pairsSortedByKey, pairsSortedByValue, toString, toStringByValue, values
chooseGrowCapacity, chooseHighWaterMark, chooseLowWaterMark, chooseMeanCapacity, chooseShrinkCapacity, equalsMindTheNull, isEmpty, nextPrime, size
protected static final byte FREE
protected static final byte FULL
protected static final byte REMOVED
protected static final float NO_KEY_VALUE
protected float[] table
protected long[] values
protected byte[] state
protected int freeEntries
public OpenFloatLongHashMap()
public OpenFloatLongHashMap(int initialCapacity)
initialCapacity
- the initial capacity of the map.IllegalArgumentException
- if the initial capacity is less than zero.public OpenFloatLongHashMap(int initialCapacity, double minLoadFactor, double maxLoadFactor)
initialCapacity
- the initial capacity.minLoadFactor
- the minimum load factor.maxLoadFactor
- the maximum load factor.IllegalArgumentException
- if initialCapacity < 0 || (minLoadFactor < 0.0 || minLoadFactor >= 1.0) ||
(maxLoadFactor <= 0.0 || maxLoadFactor >= 1.0) || (minLoadFactor >=
maxLoadFactor).public void clear()
clear
in class AbstractSet
public Object clone()
clone
in class PersistentObject
public boolean containsKey(float key)
containsKey
in class AbstractFloatLongMap
public boolean containsValue(long value)
containsValue
in class AbstractFloatLongMap
public void ensureCapacity(int minCapacity)
This method never need be called; it is for performance tuning only. Calling this method before put()ing a large number of associations boosts performance, because the receiver will grow only once instead of potentially many times and hash collisions get less probable.
ensureCapacity
in class AbstractSet
minCapacity
- the desired minimum capacity.public boolean forEachKey(FloatProcedure procedure)
forEachKey
in class AbstractFloatLongMap
procedure
- the procedure to be applied. Stops iteration if the procedure returns false, otherwise
continues.public boolean forEachPair(FloatLongProcedure procedure)
forEachKey(FloatProcedure)
.forEachPair
in class AbstractFloatLongMap
procedure
- the procedure to be applied. Stops iteration if the procedure returns false, otherwise
continues.public long get(float key)
get
in class AbstractFloatLongMap
key
- the key to be searched for.protected int indexOfInsertion(float key)
key
- the key to be added to the receiver.protected int indexOfKey(float key)
key
- the key to be searched in the receiver.protected int indexOfValue(long value)
value
- the value to be searched in the receiver.public void keys(FloatArrayList list)
forEachKey(FloatProcedure)
.
This method can be used to iterate over the keys of the receiver.
keys
in class AbstractFloatLongMap
list
- the list to be filled, can have any size.public Iterator<OpenFloatLongHashMap.MapElement> iterator()
public void pairsMatching(FloatLongProcedure condition, FloatArrayList keyList, LongArrayList valueList)
forEachKey(FloatProcedure)
. Example:
FloatLongProcedure condition = new FloatLongProcedure() { // match even values only public boolean apply(float key, long value) { return value%2==0; } } keys = (8,7,6), values = (1,2,2) --> keyList = (6,8), valueList = (2,1)
pairsMatching
in class AbstractFloatLongMap
condition
- the condition to be matched. Takes the current key as first and the current value as second
argument.keyList
- the list to be filled with keys, can have any size.valueList
- the list to be filled with values, can have any size.public boolean put(float key, long value)
put
in class AbstractFloatLongMap
key
- the key the value shall be associated with.value
- the value to be associated.public long adjustOrPutValue(float key, long newValue, long incrValue)
AbstractFloatLongMap
adjustOrPutValue
in class AbstractFloatLongMap
key
- the key.newValue
- the value to store if the key is not currently in the map.incrValue
- the value to be added to the current value in the map.protected void rehash(int newCapacity)
public boolean removeKey(float key)
removeKey
in class AbstractFloatLongMap
key
- the key to be removed from the receiver.protected final void setUp(int initialCapacity, double minLoadFactor, double maxLoadFactor)
setUp
in class AbstractSet
initialCapacity
- the initial capacity of the receiver.minLoadFactor
- the minLoadFactor of the receiver.maxLoadFactor
- the maxLoadFactor of the receiver.IllegalArgumentException
- if initialCapacity < 0 || (minLoadFactor < 0.0 || minLoadFactor >= 1.0) ||
(maxLoadFactor <= 0.0 || maxLoadFactor >= 1.0) || (minLoadFactor >=
maxLoadFactor).public void trimToSize()
trimToSize
in class AbstractSet
public void values(LongArrayList list)
forEachKey(FloatProcedure)
.
This method can be used to iterate over the values of the receiver.
values
in class AbstractFloatLongMap
list
- the list to be filled, can have any size.protected void getInternalFactors(int[] capacity, double[] minLoadFactor, double[] maxLoadFactor)
capacity
- minLoadFactor
- maxLoadFactor
- Copyright © 2008–2015 The Apache Software Foundation. All rights reserved.