No, the difference between HashMap and HashSet is that they're fundamentally different data structures. A HashSet implements the Set interface, and contains a set of unique objects. A HashMap implements the Map interface, and contains key-value pairs (where the key is unique). You use them for different purposes.
The "Hash" in both names is because both use a hashing algorithm (relying on the objects hashCode() method) in their implementation.
I think you meant Hashtable, not HashSet. With Hashtable you get a synchronized map, something that's usually not necessary. And besides, why not allow null keys and values? I think Hashtable is too strict in disallowing them in the first place.
And if you really don't want null keys and values, use Collections.checkedMap. This will throw an exception if a key / value is not of the right class - including if it's null.