public void delete(Key key) {
		int i;
		for (i = hash(key); keys[i] != null; i = (i + 1) % M) {
			if (keys[i].equals(key)) {
				keys[i] = null;
				vals[i] = null;
			}
		}

		// 对被删除键的右边的数据进行重新hash
		i = (i + 1) % M;
		while (keys[i] != null) {
			Key tempKey = keys[i];
			Value tempValue = vals[i];
			keys[i] = null;
			vals[i] = null;
			N--;

			put(tempKey, tempValue);
			i = (i + 1) % M;

		}

		N--;
		if (M > INIT_SIZE && N < M / 8) {
			resize(M / 2);
		}

	}