|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--waba.util.Hashtable
This class implements a hashtable, which maps keys to values. Any
non-null object can be used as a key or as a value.
An instance of Hashtable has two parameters that
affect its efficiency: its capacity and its load
factor. The load factor should be between 0.0 and 1.0. When
the number of entries in the hashtable exceeds the product of the
load factor and the current capacity, the capacity is increased by
calling the rehash method. Larger load factors use
memory more efficiently, at the expense of larger expected time
per lookup.
If many entries are to be made into a Hashtable,
creating it with a sufficiently large capacity may allow the
entries to be inserted more efficiently than letting it perform
automatic rehashing as needed to grow the table.
This example creates a hashtable of numbers. It uses the names of the numbers as keys:
Hashtable numbers = new Hashtable(10);
numbers.put("one", Convert.toString(1));
numbers.put("two", Convert.toString(2));
numbers.put("three", Convert.toString(3));
To retrieve a number, use the following code:
String n = (String)numbers.get("two");
if (n != null) {
// "two = " + Convert.toInt(n);
}
Important notes (added by guich)
There are no default constructor to decrease memory usage. Also,
thanks to Arthur van Hoff
| Field Summary | |
int |
collisions
Computes the number of collisions for a set of inserts. |
| Constructor Summary | |
Hashtable(int initialCapacity)
Constructs a new, empty hashtable with the specified initial capacity and default load factor of 0.75f. |
|
Hashtable(int initialCapacity,
float loadFactor)
Constructs a new, empty hashtable with the specified initial capacity and the specified load factor. |
|
Hashtable(java.lang.String res)
Constructs a new hashtable, parsing the elements from the given String. |
|
| Method Summary | |
void |
clear()
Clears this hashtable so that it contains no keys. |
boolean |
exists(java.lang.Object key)
Checks if the value with the specified key is mapped in this hashtable. |
java.lang.Object |
get(int hash)
Returns the value to which the specified hash is mapped in this hashtable. |
java.lang.Object |
get(java.lang.Object key)
Returns the value to which the specified key is mapped in this hashtable. |
Vector |
getKeys()
Return a Vector of the keys in the Hashtable. |
Vector |
getKeyValuePairs(java.lang.String separator)
Return a Vector with pairs in the form key=value from the Hashtable.
|
Vector |
getValues()
Return a Vector of the values in the Hashtable. |
java.lang.Object |
put(java.lang.Object key,
java.lang.Object value)
Maps the specified key to the specified
value in this hashtable. |
protected void |
rehash()
Rehashes the contents of the hashtable into a hashtable with a larger capacity. |
java.lang.Object |
remove(java.lang.Object key)
Removes the key (and its corresponding value) from this hashtable. |
int |
size()
Returns the number of keys in this hashtable. |
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
| Field Detail |
public int collisions
int max = 0xFFFFFFF;
for (int h = 5; ; h++)
{
IntHashtable ht = new IntHashtable(h);
ht.put("nbsp".hashCode(),' ');
ht.put("shy".hashCode(),'');
ht.put("quot".hashCode(),'"');
...
if (ht.collisions < max)
{
Vm.debug("h: "+h+" colli: "+ht.collisions);
max = ht.collisions;
if (max == 0)
break;
}
}
| Constructor Detail |
public Hashtable(int initialCapacity)
initialCapacity - the initial capacity of the hashtable.
public Hashtable(int initialCapacity,
float loadFactor)
initialCapacity - the initial capacity of the hashtable.loadFactor - a number between 0.0 and 1.0.public Hashtable(java.lang.String res)
// save these two lines in a file named EN.txt: Message = Message TestMsg = This is a test Exit = Exit // save these other two in a file named PT.txt: Message = Mensagem TestMsg = Isso é um teste Exit = SairThen, call java.tools.Warp passing /T as parameter, so that these two files are included inside of the PDB.
String txt = idiom == EN ? "EN.txt" : "PT.txt";
byte[] b = Vm.getFile(txt);
Hashtable res = new Hashtable(new String(b,0,b.length));
new MessageBox(res.get("Message"), res.get("TestMsg"), new String[]{res.get("Exit")}).popupModal();
Note that the keys are case sensitive, and that all strings are trimmed.| Method Detail |
public void clear()
public java.lang.Object get(java.lang.Object key)
throws ElementNotFoundError
key - a key in the hashtable.null if the key is not mapped to any value in
this hashtable.
public java.lang.Object get(int hash)
throws ElementNotFoundError
Caution: since you're passing an integer instead of an object, if there are two objects that map to the same key, this method will always return the first one only.
hash - The key hash in the hashtable.null if the key is not mapped to any value in
this hashtable.public boolean exists(java.lang.Object key)
key - a key in the hashtable.public Vector getKeys()
public Vector getValues()
public Vector getKeyValuePairs(java.lang.String separator)
key=value from the Hashtable.
Each vector's element can safely be casted to a String.separator - the separator between the key and the value. Should be ": ","=", etc.
public java.lang.Object put(java.lang.Object key,
java.lang.Object value)
key to the specified
value in this hashtable. Neither the key nor the
value can be null.
The value can be retrieved by calling the get method
with a key that is equal to the original key.
key - the hashtable key.value - the value.null if it did not have one.Object.equals(java.lang.Object)protected void rehash()
public java.lang.Object remove(java.lang.Object key)
throws ElementNotFoundError
key - the key that needs to be removed.null if the key did not have a mapping.public int size()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||