@Override
	public boolean retainAll(Collection<?> c) {
		HashSet<T> removeSet = new HashSet<T>();
		for (T obj : typeKey.keySet()) {
			if (!c.contains(obj)) {
				removeSet.add(obj);
			}
		}
		return removeAll(removeSet);
	}