@Override
	public boolean remove(T element) {
		int i = 0;
		int hashCode = element.hashCode() % hashTable.size();
		if (keyCode.get(hashCode).equals("f") && hashTable.get(hashCode).equals(element)) {
			hashTable.set(hashCode, null);
			keyCode.set(hashCode, "r");
			return true;
		} else if (keyCode.get(hashCode).equals("r") || keyCode.get(hashCode).equals("f")) {
			if (keyCode.get(hashCode + i).equals("e")) {
				// System.out.println("cannot remove: not in the array");
				return false;
			}
			while (!(hashTable.get(hashCode + i).equals(element))) {
				// System.out.println("remove iterating: " + i);
				i++;
				if ((hashCode + i) >= hashTable.size()) {
					hashCode = 0;
					i = 0;
				}
			}
			// System.out.println("remove probing called");
			hashTable.set(hashCode + i, null);
			keyCode.set(hashCode + i, "r");
		}
		return true;
	}