public class StringSizedSet
extends java.lang.Object
String
values.Modifier and Type | Field | Description |
---|---|---|
static double |
DEFAULT_FILL_FRACTION |
Default fill fraction for sizing of tables.
|
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.
|
Constructor | Description |
---|---|
StringSizedSet(int count) |
Constructor with only value count specified.
|
StringSizedSet(int count,
double fill) |
Constructor with full specification.
|
Modifier and Type | Method | Description |
---|---|---|
boolean |
add(java.lang.String key) |
Add a key to the set.
|
void |
clear() |
Set the table to the empty state.
|
boolean |
contains(java.lang.String key) |
Check if an entry is present in the table.
|
private int |
freeSlot(int slot) |
Find free slot number for entry.
|
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
protected final int m_arraySize
protected final java.lang.String[] m_keyTable
protected final int m_hitOffset
public StringSizedSet(int count, double fill)
count
- number of values to assume in sizing of tablefill
- fraction fill for table (maximum of 0.7
, to
prevent excessive collisions)public StringSizedSet(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 boolean add(java.lang.String key)
key
- key to be added to table (non-null
)true
if added, false
if already present
value if key not previously present in tablepublic final boolean contains(java.lang.String key)
key
- key to be foundtrue
if key found in table, false
if notpublic void clear()