@Override
	public void insert(String key) {

		totOps++;
		if (find(key))
			return;
		if (isOverLoaded(numElements + 1))
			increaseTable();// Increase table size if table will be overloaded.

		int hCode = hashCode.giveCode(key);
		int compKey = compressKey(hCode);

		totProb++;
		if (table[compKey] == null || table[compKey].equals(AVAILABLE)) {
			numElements++;
			table[compKey] = key;
			return;
		}
		int doubleCode = compressDoubleHash(hCode);
		for (int j = 1; j < table.length - 1; j++) {
			totProb++;
			int dCompress = doubleHash(compKey, doubleCode, j);
			if (table[dCompress] == null || table[dCompress].equals(AVAILABLE)) {
				numElements++;
				table[dCompress] = key;
				return;
			}

		}
	}