According to the rules of the Set interface, you must implement the equals() to compare object uniqueness as the Set does not take duplicate elements, and you must also make sure the hashCode() returns a unique id for all the objects you add to the HashSet collection, in your code you are returning the same hashcode for all your objects.
You can try to print the name of you object that is stored in your HashSet to try and understand with 1 exactly is added as the size of your collection is 1.
Well actually, if you see clearly, the Olympics class also overrides the add method of HashSet to always add new Game("Hockey") to the set irrespective of what is send to the add method !!! So, even if equals & hashcode are implemented correctly, the Olympics class make sure that there can never be more than one element in the set So, its one of the classes that can make a user pull out all his hairs