title: Return Value from Hashtable get function is a Reference?
body: <pre><code>Hashtable&lt;String, Hashtable&lt;String, HashSet&lt;String&gt;&gt;&gt; test = 
          new Hashtable&lt;String, Hashtable&lt;String, HashSet&lt;String&gt;&gt;&gt;();
  test.put("1", new Hashtable&lt;String, HashSet&lt;String&gt;&gt;());
  Hashtable&lt;String, HashSet&lt;String&gt;&gt; actual = test.get("1");
  actual.put("3", new HashSet&lt;String&gt;());
  //test.put("1", actual);
  HashSet&lt;String&gt; expected = test.get("1").get("3");
  if ( expected == null ) {
   System.out.println("DIE");      
  } 
  </code></pre>
  
  <p>Based on the code above, I thought DIE would be printed out. But apparently, actual is a reference to the object inside test still. I was under the impression that I had to "put" back actual into test (shown by the line that had been commented out). Is there authoritative documentation on whether actual is a reference or not?</p>