Entry removeMapping(final Object o) {
		if (!(o instanceof Entry)) {
			return null;
		}
		final Entry entry = (Entry) o;
		final long key = entry.getKey();
		final int hash = Entry.keyHashCode(key);
		final int i = hash & this.tableSizeMinusOne;
		Entry prev = this.table[i];
		Entry e = prev;
		while (e != null) {
			final Entry next = e.next;
			if (e.hash == hash && e.equals(entry)) {
				--this.size;
				if (prev == e) {
					this.table[i] = next;
				} else {
					prev.next = next;
				}
				return e;
			}
			prev = e;
			e = next;
		}
		return e;
	}