/*THIS WILL NOT ACTUALLY COMPILE *FOR A NUMBER OF REASONS *THIS IS SIMPLY FOR THE GENERAL IDEA*/ public class HashTable { private int defaultCapacity = 50; private double loadFactor = .75; private numElements; private LinkedList[] hashtable; public HashTable() { hashtable = new LinkedList[defaultCapacity]; numElements = 0; } public HashTable(int cap) { hashtable = new LinkedList[cap]; numElements = 0; } public boolean contains(Object obj) { int index = hash(obj) % hashtable.length; if(hashtable[index] == null) return false; for(Object g : hashtable[index]) if(g.equals(obj)) return true; return false; } public void grow() { //SCARY and Alex doesn't want to write it. } public Object getObj(Object obj) { int index = hash(obj) % hashtable.length; if(hashtable[index] == null) return null; for(Object g : hashtable[index]) if(g.equals(obj)) return obj; return null; } public void put(Object obj) { int index = hash(obj) % hashtable.length; if(hashtable[index] == null) { hashtable[index] = new LinkedList(); hashtable[index].add(obj); } else { hashtable[index].add(obj); } numElements++; if(((double)numElements)/hashtable.length > loadFactor) grow(); } }