title: Java's Properties: differences between .propertyNames() and .stringPropertyNames()?
body: <p>I have read <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html" rel="nofollow">the javadoc of this class</a> again and again, but still cannot figure out the difference.</p>
  
  <p>Apart from the obvious difference that <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#propertyNames%28%29" rel="nofollow"><code>.propertyNames()</code></a> returns an <code>Enumeration</code> and <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#stringPropertyNames%28%29" rel="nofollow"><code>.stringPropertyNames()</code></a> returns a <code>Set</code>, as far as I can see, both methods return the same content. At least my musings say so.</p>
  
  <p>Can the results ever differ between the contents returned by these methods? The only possibilities I see is that the second method, using an <code>Enumeration</code>, may return different results if the instance has been modified since <code>Properties</code> implements <code>Hashtable</code> which is fully synchronised. But apart from that?</p>