Package org.jacop.jasat.utils.structures
Class IntHashMap<E>
java.lang.Object
org.jacop.jasat.utils.structures.IntHashMap<E>
an efficient map with ints as keys. This is a hashtable with arrays.
- Version:
- 4.10
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate final class
iterator over valuesprivate final class
class used to iterate on the keys of the map -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int
private static final int
private static final int
private static final int
private int[][]
private E[][]
-
Constructor Summary
ConstructorsModifierConstructorDescriptionpublic constructorprivate
IntHashMap
(int size) builds a new map with given size -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
clear the table, removing all elementsboolean
containsKey
(int key) check if the key is in the tableboolean
containsKey
(Object arg0) private void
double the size of the tableentrySet()
iterates over all entries in the mapprivate int
find
(int key, int index) try to find the key in the table.get
(int key) get the value associated with key, or null otherwiseprivate int
hash
(int key, int length) hash an integer and returns the result modulo lengthboolean
isEmpty()
keySet()
put the value associated with the keyboolean
remove
(int key) remove the key from the tableint
size()
-
Field Details
-
HASH_PRIME
private static final int HASH_PRIME- See Also:
-
INITIAL_SIZE
private static final int INITIAL_SIZE- See Also:
-
MAX_BUCKET_SIZE
private static final int MAX_BUCKET_SIZE- See Also:
-
tableKey
private int[][] tableKey -
tableValue
-
cardinal
private int cardinal
-
-
Constructor Details
-
IntHashMap
private IntHashMap(int size) builds a new map with given size- Parameters:
size
- the size
-
IntHashMap
public IntHashMap()public constructor
-
-
Method Details
-
clear
public void clear()clear the table, removing all elements -
containsKey
public boolean containsKey(int key) check if the key is in the table- Parameters:
key
- the key- Returns:
- true if the key is in the table
-
get
get the value associated with key, or null otherwise- Parameters:
key
- the key- Returns:
- the value associated with key, or null otherwise
-
isEmpty
public boolean isEmpty()- Returns:
- true if the table is empty
-
put
put the value associated with the key- Parameters:
key
- the keyvalue
- the value- Returns:
- the old value, or null
-
remove
public boolean remove(int key) remove the key from the table- Parameters:
key
- the key to remove- Returns:
- true if the key was in the table
-
size
public int size() -
containsKey
-
doubleSize
private void doubleSize()double the size of the table -
find
private int find(int key, int index) try to find the key in the table. On success, will return the index of the key in its bucket; otherwise, will return -1- Parameters:
key
- the key to searchindex
- the hash of the key- Returns:
- the index of the key in the tableKey[hash(key)], or -1 if the key is not present
-
hash
private int hash(int key, int length) hash an integer and returns the result modulo length- Parameters:
key
- the int to hashlength
- the length (space of keys)- Returns:
- an int between 0 and length-1 inclusive
-
keySet
- Returns:
- the set of keys of the map
-
entrySet
iterates over all entries in the map- Returns:
- iterator for enumeration of elements in this map
-