@Override
	public boolean containsValue(Object val)
	{
		if (val == null) {
			for (int idx = buckets.length - 1; idx != -1; idx--) {
				MapEntry<K,V>[] bucket = buckets[idx];
				for (int idx2 = bucketsizes[idx] - 1; idx2 != -1; idx2--) {
					if (bucket[idx2].value == null) return true;
				}
			}
		} else {
			for (int idx = buckets.length - 1; idx != -1; idx--) {
				MapEntry<K,V>[] bucket = buckets[idx];
				for (int idx2 = bucketsizes[idx] - 1; idx2 != -1; idx2--) {
					V v = bucket[idx2].value;
					if (val == v || val.equals(v)) return true;
				}
			}
		}
		return false;
	}