public class StringIntSizedMap
extends java.lang.Object
String
values as keys mapped to
primitive int
values.Modifier and Type | Field and Description |
---|---|
static double |
DEFAULT_FILL_FRACTION
Default fill fraction for sizing of tables.
|
static int |
DEFAULT_NOT_FOUND
Default value returned when key not found in table.
|
protected int |
m_arraySize
Size of array used for keys.
|
protected int |
m_hitOffset
Offset added (modulo table size) to slot number on collision.
|
protected java.lang.String[] |
m_keyTable
Array of key table slots.
|
protected int |
m_notFoundValue
Value returned when key not found in table.
|
protected int[] |
m_valueTable
Array of value table slots.
|
Constructor and Description |
---|
StringIntSizedMap(int count)
Constructor with only value count specified.
|
StringIntSizedMap(int count,
double fill,
int miss)
Constructor with full specification.
|
StringIntSizedMap(int count,
int miss)
Constructor with value count and miss value specified.
|
Modifier and Type | Method and Description |
---|---|
int |
add(java.lang.String key,
int value)
Add an entry to the table.
|
void |
clear()
Set the table to the empty state.
|
boolean |
containsKey(java.lang.String key)
Check if an entry is present in the table.
|
private int |
freeSlot(int slot)
Find free slot number for entry.
|
int |
get(java.lang.String key)
Find an entry in the table.
|
private int |
standardFind(java.lang.String key)
Standard find key in table.
|
private int |
standardSlot(java.lang.String key)
Standard base slot computation for a key.
|
private int |
stepSlot(int slot)
Step the slot number for an entry.
|
public static final double DEFAULT_FILL_FRACTION
public static final int DEFAULT_NOT_FOUND
protected final int m_arraySize
protected final java.lang.String[] m_keyTable
protected final int[] m_valueTable
protected final int m_notFoundValue
protected final int m_hitOffset
public StringIntSizedMap(int count, double fill, int miss)
count
- number of values to assume in sizing of tablefill
- fraction fill for table (maximum of 0.7
, to
prevent excessive collisions)miss
- value returned when key not found in tablepublic StringIntSizedMap(int count, int miss)
count
- number of values to assume in initial sizing of tablemiss
- value returned when key not found in tablepublic StringIntSizedMap(int count)
count
- number of values to assume in initial sizing of tableprivate final int stepSlot(int slot)
slot
- slot number to be steppedprivate final int freeSlot(int slot)
slot
- initial slot computed from keyprivate final int standardSlot(java.lang.String key)
hashCode()
method
defined for the key objects or the System.identityHashCode()
method, as selected by the hash technique constructor parameter. To
implement a hash class based on some other methods of hashing and/or
equality testing, define a separate method in the subclass with a
different name and use that method instead. This avoids the overhead
caused by overrides of a very heavily used method.key
- key value to be computedprivate int standardFind(java.lang.String key)
equals
comparisons for
the key values.key
- to be found in table-index-1
of slot to be
used for inserting key in table if not already present (always negative)public int add(java.lang.String key, int value)
key
- key to be added to table (non-null
)value
- associated value for keypublic final boolean containsKey(java.lang.String key)
key
- key for entry to be foundtrue
if key found in table, false
if notpublic final int get(java.lang.String key)
key
- key for entry to be returnedpublic void clear()