По сути, проблема в том, что вы не поместили две карты в вашу карту, а вместо этого поместили две ссылки на одну и ту же карту.
Чтобы иметь две независимые версии внутренней карты во внешней, вам нужно сделать ее копию перед повторным размещением.
Вы должны быть в состоянии сделать копию HashMap
, используя метод clone
. Обратите внимание, что хотя вы получаете две разные карты, фактические значения на этих двух картах одинаковы. Это означает, что если содержимое скопированной карты изменчиво, и вы меняете их, они все равно изменятся в обоих местах.
уточнить:
HashMap<Object, Object> map1 = new HashMap<Object, Object>()// This is your original map.
map1.put("key", mutableObject)
HashMap<Object, Object> map2 = map1.clone();
map2.put("something", "something else");// map1 is unchanged
map2.get("key").change();// the mutable object is changed in both maps.