Hash table with double hashing : HashTable Map : Collections Data Structure : Java examples (example source code) Organized by topic

Java
C++
PHP
Java Home »  Collections Data Structure   » [  HashTable Map  ]  Screenshots 
 



Hash table with double hashing



import java.io.IOException;

public class HashTableWithDoubleHashing {
  private DataItem[] hashArray; 

  private int arraySize;

  private DataItem bufItem; // for deleted items

  HashTableWithDoubleHashing(int size) {
    arraySize = size;
    hashArray = new DataItem[arraySize];
    bufItem = new DataItem(-1);
  }

  public void displayTable() {
    System.out.print("Table: ");
    for (int j = 0; j < arraySize; j++) {
      if (hashArray[j!= null)
        System.out.print(hashArray[j].getKey() " ");
      else
        System.out.print("** ");
    }
    System.out.println("");
  }

  public int hashFunc1(int key) {
    return key % arraySize;
  }

  public int hashFunc2(int key) {
    return - key % 6;
  }

  public void insert(int key, DataItem item) {
    int hashVal = hashFunc1(key)// hash the key
    int stepSize = hashFunc2(key)// get step size
    // until empty cell or -1
    while (hashArray[hashVal!= null && hashArray[hashVal].getKey() != -1) {
      hashVal += stepSize; // add the step
      hashVal %= arraySize; // for wraparound
    }
    hashArray[hashVal= item; // insert item
  }

  public DataItem delete(int key) {
    int hashVal = hashFunc1(key)
    int stepSize = hashFunc2(key)// get step size

    while (hashArray[hashVal!= null) {
      if (hashArray[hashVal].getKey() == key) {
        DataItem temp = hashArray[hashVal]// save item
        hashArray[hashVal= bufItem; // delete item
        return temp; // return item
      }
      hashVal += stepSize; // add the step
      hashVal %= arraySize; // for wraparound
    }
    return null// can't find item
  }

  public DataItem find(int key) {
    int hashVal = hashFunc1(key)// hash the key
    int stepSize = hashFunc2(key)// get step size

    while (hashArray[hashVal!= null) {
      if (hashArray[hashVal].getKey() == key)
        return hashArray[hashVal]// yes, return item
      hashVal += stepSize; // add the step
      hashVal %= arraySize; // for wraparound
    }
    return null// can't find item
  }

  public static void main(String[] argsthrows IOException {
    int aKey;
    DataItem aDataItem;
    int size, initSize;
    size = 100;
    initSize = 10;
    HashTableWithDoubleHashing theHashTable = new HashTableWithDoubleHashing(
        size);
    for (int i = 0; i < initSize; i++) {
      aKey = (int) (java.lang.Math.random() * size);
      aDataItem = new DataItem(aKey);
      theHashTable.insert(aKey, aDataItem);
    }

    theHashTable.displayTable();
    aKey = 100;
    aDataItem = new DataItem(aKey);
    theHashTable.insert(aKey, aDataItem);
    aKey = 100;
    theHashTable.delete(aKey);
    aKey = 100;
    aDataItem = theHashTable.find(aKey);
    if (aDataItem != null)
      System.out.println("Found " + aKey);
    else
      System.out.println("Could not find " + aKey);
  }

}

class DataItem {
  private int data;

  public DataItem(int i) {
    data = i;
  }

  public int getKey() {
    return data;
  }

}

           
       
Related examples in the same category
1.  Associates keys with values Associates keys with values
2.  A simple Map implementation A simple Map implementation
3.  Hash table with separate chaining
4.  Hash table with linear probing Hash table with linear probing
5.  Working with Key-Value Pairs in a Hashtable
6.  Demonstrate the Hashtable class, and an Enumeration
7.  Demonstrate the HashMap class, and an Iterator Demonstrate the HashMap class, and an Iterator
8.  Soft HashMap
9.  MultiMap extends AbstractMap
10.  Array Map extends AbstractMap Array Map extends AbstractMap
11.  Demonstrating the WeakHashMap Demonstrating the WeakHashMap
12.  Use treemap Use treemap
13.  Sorting Elements in a TreeMap Sorting Elements in a TreeMap
14.  What you can do with a TreeMap What you can do with a TreeMap
15.  A Map implemented with ArrayLists
16.  Simple demonstration of HashMap Simple demonstration of HashMap
























Home| Contact Us
Copyright 2003 - 04 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.