hashmap - Objects in java. What happens with them after they are no more assigned to a variable? -


this question has answer here:

i've been working hashmaps when came question couldn't solve myself or find on web.

hashmap<string,hashmap<string,string>> m= new hashmap<>(); hashmap<string,string> t = new hashmap<>();  t.put("test1","1"); m.put("h1",t);  t = new hashmap<>(); t.put("test2,"2"); m.put("h2",t);  system.out.println(m); 

that gives me {h1={test1=1}, h2={test2=2}} big hashmap contains data of both hashmaps. question did copy data of smaller hashmaps, or both "t" hashmaps stay in jvm memory, , hashmap m links me them?

whenever place t m, no copy of data made. instead, reference sub-map placed.

you add t m twice. however, each time t points different object. end 2 separate, independent sub-maps in m.

contrast following example:

      t.put("subkey","old");       m.put("h1",t);       m.put("h2",t);       t.put("subkey", "new");       system.out.println(m); 

this prints out

{h1={subkey=new}, h2={subkey=new}} 

here, t , both keys of m point same sub-map. when change one, change.


Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -