|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectuka.util.IntOpenHashSet
This class represents open addressing hash table based sets of int values. Unlike the Java Collections HashSet instances of this class are not backed up by a map. It is implemented using a simple open addressing hash table where the keys are stored directly as entries.
IntOpenHashSet,
HashSet,
Serialized Form| Field Summary | |
private int[] |
data
The hash table backing up this set. |
static int |
DEFAULT_CAPACITY
The default capacity of this set. |
static int |
DEFAULT_GROWTH_CHUNK
The default chunk size with which to increase the capacity of this set. |
static double |
DEFAULT_GROWTH_FACTOR
The default factor with which to increase the capacity of this set. |
private static int |
DEFAULT_GROWTH_POLICY
The default growth policy of this set. |
static double |
DEFAULT_LOAD_FACTOR
The default load factor of this set. |
private static byte |
EMPTY
|
private int |
expandAt
The next size at which to expand the keys[]. |
private static int |
GROWTH_POLICY_ABSOLUTE
Constant indicating absolute growth policy. |
private static int |
GROWTH_POLICY_RELATIVE
Constant indicating relative growth policy. |
private int |
growthChunk
The growth chunk size of this set, if the growth policy is absolute. |
private double |
growthFactor
The growth factor of this set, if the growth policy is relative. |
private int |
growthPolicy
The growth policy of this set (0 is relative growth, 1 is absolute growth). |
private IntHashFunction |
keyhash
The hash function used to hash keys in this set. |
private double |
loadFactor
The load factor of this set. |
private static byte |
OCCUPIED
|
private static byte |
REMOVED
|
private int |
size
The size of this set. |
private byte[] |
states
The states of each cell in the keys[]. |
private int |
used
The number of entries in use (removed or occupied). |
| Constructor Summary | |
|
IntOpenHashSet()
Creates a new hash set with capacity 11, a relative growth factor of 1.0, and a load factor of 75%. |
|
IntOpenHashSet(double loadFactor)
Creates a new hash set with a capacity of 11, a relative growth factor of 1.0, and a specified load factor. |
|
IntOpenHashSet(int capacity)
Creates a new hash set with a specified capacity, a relative growth factor of 1.0, and a load factor of 75%. |
|
IntOpenHashSet(int[] a)
Creates a new hash set with the same elements as the specified array. |
|
IntOpenHashSet(int capacity,
double loadFactor)
Creates a new hash set with a specified capacity and load factor, and a relative growth factor of 1.0. |
|
IntOpenHashSet(int capacity,
double loadFactor,
double growthFactor)
Creates a new hash set with a specified capacity, load factor, and relative growth factor. |
|
IntOpenHashSet(int capacity,
double loadFactor,
int growthChunk)
Creates a new hash set with a specified capacity, load factor, and absolute growth factor. |
|
IntOpenHashSet(IntHashFunction keyhash)
Creates a new hash set with capacity 11, a relative growth factor of 1.0, and a load factor of 75%. |
|
IntOpenHashSet(IntHashFunction keyhash,
double loadFactor)
Creates a new hash set with a capacity of 11, a relative growth factor of 1.0, and a specified load factor. |
|
IntOpenHashSet(IntHashFunction keyhash,
int capacity)
Creates a new hash set with a specified capacity, a relative growth factor of 1.0, and a load factor of 75%. |
|
IntOpenHashSet(IntHashFunction keyhash,
int capacity,
double loadFactor)
Creates a new hash set with a specified capacity and load factor, and a relative growth factor of 1.0. |
|
IntOpenHashSet(IntHashFunction keyhash,
int capacity,
double loadFactor,
double growthFactor)
Creates a new hash set with a specified capacity, load factor, and relative growth factor. |
|
IntOpenHashSet(IntHashFunction keyhash,
int capacity,
double loadFactor,
int growthChunk)
Creates a new hash set with a specified capacity, load factor, and absolute growth factor. |
private |
IntOpenHashSet(IntHashFunction keyhash,
int capacity,
int growthPolicy,
double growthFactor,
int growthChunk,
double loadFactor)
|
private |
IntOpenHashSet(int capacity,
int growthPolicy,
double growthFactor,
int growthChunk,
double loadFactor)
|
| Method Summary | |
boolean |
add(int v)
|
void |
appendTo(ToString s)
This method should append the contents of each instance variable of the current
object to the given ToString object. |
void |
applyPermutation(Permutation permutation)
|
void |
clear()
|
java.lang.Object |
clone()
Returns a clone of this hash set. |
boolean |
contains(int v)
|
private void |
ensureCapacity()
|
boolean |
isEmpty()
|
IntIterator |
iterator()
|
private void |
readObject(java.io.ObjectInputStream s)
|
boolean |
remove(int v)
|
int |
size()
|
EnlargingIntArray |
toArray(EnlargingIntArray a)
|
int[] |
toArray(int[] a)
|
java.lang.String |
toString()
Returns a string representation of this collection. |
private java.lang.String |
toStringState(int state)
|
void |
trimToSize()
|
private void |
writeObject(java.io.ObjectOutputStream s)
|
| Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
private static final int GROWTH_POLICY_RELATIVE
private static final int GROWTH_POLICY_ABSOLUTE
private static final int DEFAULT_GROWTH_POLICY
GROWTH_POLICY_RELATIVE,
GROWTH_POLICY_ABSOLUTE,
Constant Field Valuespublic static final double DEFAULT_GROWTH_FACTOR
public static final int DEFAULT_GROWTH_CHUNK
public static final int DEFAULT_CAPACITY
public static final double DEFAULT_LOAD_FACTOR
private IntHashFunction keyhash
private int size
private transient int[] data
private transient byte[] states
private static final byte EMPTY
private static final byte OCCUPIED
private static final byte REMOVED
private transient int used
private int growthPolicy
private double growthFactor
private int growthChunk
private double loadFactor
private int expandAt
| Constructor Detail |
private IntOpenHashSet(IntHashFunction keyhash,
int capacity,
int growthPolicy,
double growthFactor,
int growthChunk,
double loadFactor)
private IntOpenHashSet(int capacity,
int growthPolicy,
double growthFactor,
int growthChunk,
double loadFactor)
public IntOpenHashSet()
public IntOpenHashSet(int[] a)
a - the array whose elements to add to the new
set.
java.lang.NullPointerException - if a is null.public IntOpenHashSet(int capacity)
capacity - the initial capacity of the set.
java.lang.IllegalArgumentException - if capacity is negative.public IntOpenHashSet(double loadFactor)
loadFactor - the load factor of the set.
java.lang.IllegalArgumentException - if loadFactor is negative or zero.
public IntOpenHashSet(int capacity,
double loadFactor)
capacity - the initial capacity of the set.loadFactor - the load factor of the set.
java.lang.IllegalArgumentException - if capacity is negative;
if loadFactor is not positive.
public IntOpenHashSet(int capacity,
double loadFactor,
double growthFactor)
The set capacity increases to capacity()*(1+growthFactor). This strategy is good for avoiding many capacity increases, but the amount of wasted memory is approximately the size of the set.
capacity - the initial capacity of the set.loadFactor - the load factor of the set.growthFactor - the relative amount with which to increase the
the capacity when a capacity increase is needed.
java.lang.IllegalArgumentException - if capacity is negative;
if loadFactor is not positive;
if growthFactor is not positive.
public IntOpenHashSet(int capacity,
double loadFactor,
int growthChunk)
The set capacity increases to capacity()+growthChunk. This strategy is good for avoiding wasting memory. However, an overhead is potentially introduced by frequent capacity increases.
capacity - the initial capacity of the set.loadFactor - the load factor of the set.growthChunk - the absolute amount with which to increase the
the capacity when a capacity increase is needed.
java.lang.IllegalArgumentException - if capacity is negative;
if loadFactor is not positive;
if growthChunk is not positive.public IntOpenHashSet(IntHashFunction keyhash)
keyhash - the hash function to use when hashing keys.
java.lang.NullPointerException - if keyhash is null.
public IntOpenHashSet(IntHashFunction keyhash,
int capacity)
keyhash - the hash function to use when hashing keys.capacity - the initial capacity of the set.
java.lang.IllegalArgumentException - if capacity is negative.
java.lang.NullPointerException - if keyhash is null.
public IntOpenHashSet(IntHashFunction keyhash,
double loadFactor)
keyhash - the hash function to use when hashing keys.loadFactor - the load factor of the set.
java.lang.IllegalArgumentException - if loadFactor is negative or zero.
java.lang.NullPointerException - if keyhash is null.
public IntOpenHashSet(IntHashFunction keyhash,
int capacity,
double loadFactor)
keyhash - the hash function to use when hashing keys.capacity - the initial capacity of the set.loadFactor - the load factor of the set.
java.lang.IllegalArgumentException - if capacity is negative;
if loadFactor is not positive.
java.lang.NullPointerException - if keyhash is null.
public IntOpenHashSet(IntHashFunction keyhash,
int capacity,
double loadFactor,
double growthFactor)
The set capacity increases to capacity()*(1+growthFactor). This strategy is good for avoiding many capacity increases, but the amount of wasted memory is approximately the size of the set.
keyhash - the hash function to use when hashing keys.capacity - the initial capacity of the set.loadFactor - the load factor of the set.growthFactor - the relative amount with which to increase the
the capacity when a capacity increase is needed.
java.lang.IllegalArgumentException - if capacity is negative;
if loadFactor is not positive;
if growthFactor is not positive.
java.lang.NullPointerException - if keyhash is null.
public IntOpenHashSet(IntHashFunction keyhash,
int capacity,
double loadFactor,
int growthChunk)
keyhash - the hash function to use when hashing keys.
The set capacity increases to capacity()+growthChunk. This strategy is good for avoiding wasting memory. However, an overhead is potentially introduced by frequent capacity increases.
capacity - the initial capacity of the set.loadFactor - the load factor of the set.growthChunk - the absolute amount with which to increase the
the capacity when a capacity increase is needed.
java.lang.IllegalArgumentException - if capacity is negative;
if loadFactor is not positive;
if growthChunk is not positive.
java.lang.NullPointerException - if keyhash is null.| Method Detail |
private void ensureCapacity()
public boolean add(int v)
public IntIterator iterator()
public void applyPermutation(Permutation permutation)
public void trimToSize()
public java.lang.Object clone()
public int size()
public boolean isEmpty()
public void clear()
public boolean contains(int v)
public boolean remove(int v)
public int[] toArray(int[] a)
public EnlargingIntArray toArray(EnlargingIntArray a)
private void writeObject(java.io.ObjectOutputStream s)
throws java.io.IOException
java.io.IOException
private void readObject(java.io.ObjectInputStream s)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundExceptionpublic java.lang.String toString()
public void appendTo(ToString s)
Printableappend the contents of each instance variable of the current
object to the given ToString object. The appended data
should be labeled with the name of the corresponding instance
variable.
appendTo in interface PrintableToString,
ToString.append(String, Object),
ToString.append(String, boolean),
ToString.append(String, byte),
ToString.append(String, int)private java.lang.String toStringState(int state)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||