public class StringSizedSet
extends java.lang.Object
String
values.Modifier and Type | Field and 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 and Description |
---|
StringSizedSet(int count)
Constructor with only value count specified.
|
StringSizedSet(int count,
double fill)
Constructor with full specification.
|
Modifier and Type | Method and 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()