aznishboy

HashTable

Mar 29th, 2012
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 1.66 KB | None | 0 0
  1. import java.util.*;
  2. import apcslib.*;
  3. public class HashTable {
  4.  
  5.     private LinkedList[] hashTable;
  6.     private ListIterator<Comparable> iter;
  7.  
  8.     public HashTable(){
  9.         hashTable = new LinkedList[600];
  10.     }
  11.     public void insert(Comparable element){
  12.         if(element.hashCode() >= 0){
  13.             if(hashTable[element.hashCode()] == null){
  14.                 hashTable[element.hashCode()] = new LinkedList();
  15.                 hashTable[element.hashCode()].add(element);
  16.             }
  17.             hashTable[element.hashCode()].add(element);
  18.         }
  19.     }
  20.     public Object find(Comparable element){
  21.         Comparable temp;
  22.         if(hashTable[element.hashCode()] != null){
  23.             iter = hashTable[element.hashCode()].listIterator();
  24.             while(iter.hasNext()){
  25.                 temp = iter.next();
  26.                 if(element.compareTo(temp) == 0)
  27.                     return temp;
  28.             }
  29.         }
  30.         return null;
  31.     }
  32.     public int average(){
  33.         int avg = 0;
  34.         int n = 0;
  35.         for (int a = 0; a < hashTable.length; a++){
  36.             if(hashTable[a] != null)
  37.             {
  38.                 avg += hashTable[a].size();
  39.                 n++;
  40.             }
  41.  
  42.         }
  43.         return (avg/n);
  44.     }
  45.     public int longest(){
  46.         int max = 0;
  47.         for (int a = 0; a < hashTable.length; a++){
  48.             if(hashTable[a] != null && hashTable[a].size() > max)
  49.                 max = hashTable[a].size();
  50.         }
  51.         return max;
  52.     }
  53.     public double pointers(){
  54.         int count = 0;
  55.         for(int a = 0; a < hashTable.length; a++){
  56.             if (hashTable[a] == null)
  57.                 count++;
  58.         }
  59.  
  60.         return ((double)count/hashTable.length) * 100;
  61.     }
  62.     public void stats(){
  63.         System.out.println("The % of null pointers in the hash table " + Format.left(pointers(), 2, 2) +"%");
  64.         System.out.println("The average length of linked lists " + average());
  65.         System.out.println("The longest linked list in the hash table " + longest());
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment