我有两个HashMap。如何将HashMap添加到HashMap的HashMap中而不被覆盖
Map<Integer, HashMap<String,Integer>> outer = new HashMap<Integer,HashMap<String,Integer>>();
HashMap<String, Integer> inner =new HashMap<String, Integer>();
我有一个循环,使用全局变量(公共静态HashMap中tempMap = NULL;)更新内随着每次迭代
inner.put(word, docEnum.freq());
每次迭代我内添加到外后
tempMap = inner;
outer.put(count, tempMap);
count++;
当我打印外部时,我发现每个元素都包含inner的最终版本。 如何防止这些数据被覆盖。我已经通过将内部传入一个全局变量的方式就这个主题提出了一些其他问题的建议,但似乎并不奏效。
谢谢
你意识到你只是在你的HashMap中存储**引用**,对吗?如果你想让每个都不同,你需要明确地复制。 –
不要让'tempMap = new Hashmap'可能是正确的解决方案,但如果没有显示[mcve],很难知道你在做什么以及为什么它不起作用 –