我有一个包含10个子hashmap的hashmap,这些子hashmap 5键中的每一个都映射到一个String数组.当我想从子hashmap更新特定键的值时,所有键都会更新; 不仅如此,而且所有孩子的hashmap也都得到了更新.这段代码说明了我在做什么.
HashMap<String, HashMap<String, String[]>> parentMap = new HashMap<String, HashMap<String, String[]>>();
for(String x : someArray){ // Adds 10 children hashmaps to parentMap
parentMap.put(x,new HashMap<String, String[]>());
for(String y : someOtherArray){ // Creates 5 keys for each of the children hashmaps
parentMap.get(x).put(y,stringArray);
}
}
parentMap.get(someKey).put(someOtherKey,modifiedArray); // This updates the entry I want to update.
Run Code Online (Sandbox Code Playgroud)
当我使用最后一条指令更新时,我想要更新该密钥,但是所有内容都会更新,所有子哈希映射的所有密钥都会更新而不是我想要的密钥.
希望这是有道理的,我不确定这是否是正确的方法,但我一直在网上寻找任何类似的东西没有运气的提示.我对Java并不擅长,如果我能用更简单的东西来实现相同的结果,那将是受欢迎的,请注意我不能使用List或类似的东西,因为它使用int索引,我需要引用使用字符串(如python上的字典)到我的对象.