public void remove(K key){
        int location = (Math.abs(key.hashCode())%this.table.length);
        LinkedList<TableData<K,V>> keys = (LinkedList<TableData<K,V>>)this.table[location];
        Iterator<TableData<K,V>> i = new Iterator<TableData<K,V>>(keys);
        while(i.hasNext()){
            TableData<K,V> data = i.getNext();
            if(data.getKey().hashCode()==key.hashCode()){
                i.remove();
                return;
            }
        }
        Iterator<K> n = new Iterator<K>(this.keySet);
        while(n.hasNext()){
            K currentKey = n.getNext();
            if(currentKey.hashCode()==key.hashCode()){
                n.remove();
                return;
            }
        }
    }