1 public class Hashtable {
8 public Hashtable (int initNumBucket, int resizeRatio, int growthFactor) {
9 allocBuckets(initNumBucket);
10 numBucket = initNumBucket;
12 resizeRatio = ((resizeRatio < 0) ? 3 : resizeRatio);
13 growthFactor = ((growthFactor < 0) ? 3 : growthFactor);
16 public boolean TMhashtable_insert (ByteString keyPtr, ByteString dataPtr) {
17 int i = keyPtr.hashCode() % numBucket;
19 Pair findPair = new Pair();
20 findPair.firstPtr = keyPtr;
21 Pair pairPtr = buckets[i].find(findPair);
22 if (pairPtr != null) {
26 Pair insertPtr = new Pair(keyPtr, dataPtr);
29 if (buckets[i].insert(insertPtr) == false) {
38 void allocBuckets (int numBucket) {
40 /* Allocate bucket: extra bucket is dummy for easier iterator code */
41 buckets = new List[numBucket+1];
43 for (i = 0; i < (numBucket + 1); i++) {
44 List chainPtr = new List();
45 buckets[i] = chainPtr;