That´s a nice question the answer y that the method you are using returns complete different objects.
UIManager.getDefaults().keys(); return a Enumeration. The enumeration is not worried about having repited objects on the collection to iterate.
UIManager.getDefaults().keySet() Returns a Set and therefore it can not contain repeted objects. When elements are going to be inserted on the set que equals method of the object is used to check is the object is allready on the set. You are looking for objects of kind FontUIResource and this objects have a the following implementation os equals method:
public boolean equals(Object obj) Compares this Font object to the specified Object. Overrides: equals in class Object Parameters: obj - the Object to compare Returns: true if the objects are the same or if the argument is a Font object describing the same font as this object; false otherwise.
So on the set all the keys of kind FontUIResource with an argument describing the same font are not inserted on the set ones one of them is inserted. Consecuently the set has only a subset of the keys on the map.
More info about java sets on :