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